carl
24.04
Computer ARithmetic Library
|
carl is the main namespace for the library. More...
Namespaces | |
benchmarks | |
checkpoints | |
constraint | |
constraints | |
contractor | |
convert_poly | |
convert_ran | |
covering | |
detail | |
detail_derivative | |
detail_sign_variations | |
dtl | |
formula | |
formula_to_cnf | |
gcd_detail | |
helper | |
io | |
logging | |
Contains a custom logging facility. | |
model | |
parser | |
poly_helper | |
Helpers due to the shortcomings of libpoly's C++ API. | |
pool | |
ran | |
resultant_debug | |
roots | |
settings | |
statistics | |
tree_detail | |
vs | |
Data Structures | |
class | BasicConstraint |
Represent a polynomial (in)equality against zero. More... | |
class | CArLConverter |
class | ConvertTo |
class | ConvertFrom |
class | GiNaCConversion |
class | ToGiNaC |
class | FromGiNaC |
class | Variable |
A Variable represents an algebraic variable that can be used throughout carl. More... | |
class | VariablePool |
This class generates new variables and stores human-readable names for them. More... | |
class | variable_type_filter |
class | carlVariables |
class | MultivariateRoot |
class | VariableAssignment |
class | VariableComparison |
Represent a sum type/variant of an (in)equality between a variable on the left-hand side and multivariateRoot or algebraic real on the right-hand side. More... | |
struct | DivisionLookupResult |
The result of. More... | |
struct | UpdateFnct |
struct | DefaultBuchbergerSettings |
Standard settings used if the Buchberger object is not instantiated with another template parameter. More... | |
class | Buchberger |
Gebauer and Moeller style implementation of the Buchberger algorithm. More... | |
class | BuchbergerStats |
A little class for gathering statistics about the Buchberger algorithm calls. More... | |
class | CriticalPairConfiguration |
class | CriticalPairs |
A data structure to store all the SPolynomial pairs which have to be checked. More... | |
class | CriticalPairsEntry |
A list of SPol pairs which have to be checked by the Buchberger algorithm. More... | |
struct | SPolPair |
Basic spol-pair. More... | |
struct | SPolPairCompare |
class | AbstractGBProcedure |
class | GBProcedure |
A general class for Groebner Basis calculation. More... | |
struct | UpdateFnc |
struct | StdAdding |
struct | RadicalAwareAdding |
struct | RealRadicalAwareAdding |
class | IdealDatastructureVector |
class | Ideal |
class | ReductorConfiguration |
Class with the settings for the reduction algorithm. More... | |
class | Reductor |
A dedicated algorithm for calculating the remainder of a polynomial modulo a set of other polynomials. More... | |
class | ReductorEntry |
An entry in the reduction polynomial. More... | |
class | Interval |
The class which contains the interval arithmetic including trigonometric functions. More... | |
struct | is_interval_type< carl::Interval< Number > > |
struct | is_interval_type< const carl::Interval< Number > > |
struct | policies |
Struct which holds the rounding and checking policies required for boost interval. More... | |
struct | policies< double, Interval > |
Template specialization for rounding and checking policies for native double. More... | |
struct | LowerBound |
struct | UpperBound |
struct | is_number_type< Interval< T > > |
struct | checking |
struct | rounding |
struct | is_interval_type |
States whether a given type is an Interval . More... | |
class | VarSolutionFormula |
class | Contraction |
class | SimpleNewton |
struct | is_integer_type< cln::cl_I > |
States that cln::cl_I has the trait is_integer_type . More... | |
struct | is_rational_type< cln::cl_RA > |
States that cln::cl_RA has the trait is_rational_type . More... | |
struct | IntegralType< cln::cl_I > |
States that IntegralType of cln::cl_I is cln::cl_I . More... | |
struct | IntegralType< cln::cl_RA > |
States that IntegralType of cln::cl_RA is cln::cl_I . More... | |
class | FLOAT_T |
Templated wrapper class which allows universal usage of different IEEE 754 implementations. More... | |
struct | FloatConv |
Struct which holds the conversion operator for any two instanciations of FLOAT_T with different underlying floating point implementations. More... | |
struct | convRnd |
struct | IntegralType< carl::FLOAT_T< F > > |
struct | is_rational_type< FLOAT_T< C > > |
struct | is_float_type< carl::FLOAT_T< C > > |
struct | is_integer_type< mpz_class > |
States that mpz_class has the trait is_integer_type . More... | |
struct | is_rational_type< mpq_class > |
States that mpq_class has the trait is_rational_type . More... | |
struct | IntegralType< mpq_class > |
States that IntegralType of mpq_class is mpz_class . More... | |
struct | IntegralType< mpz_class > |
States that IntegralType of mpz_class is mpz_class . More... | |
struct | EEA |
Extended euclidean algorithm for numbers. More... | |
struct | is_subset_of_integers_type< signed char > |
States that signed char has the trait is_subset_of_integers_type . More... | |
struct | is_subset_of_integers_type< short int > |
States that short int has the trait is_subset_of_integers_type . More... | |
struct | is_subset_of_integers_type< int > |
States that int has the trait is_subset_of_integers_type . More... | |
struct | is_subset_of_integers_type< long int > |
States that long int has the trait is_subset_of_integers_type . More... | |
struct | is_subset_of_integers_type< long long int > |
States that long long int has the trait is_subset_of_integers_type . More... | |
struct | is_subset_of_integers_type< unsigned char > |
States that unsigned char has the trait is_subset_of_integers_type . More... | |
struct | is_subset_of_integers_type< unsigned short int > |
States that unsigned short int has the trait is_subset_of_integers_type . More... | |
struct | is_subset_of_integers_type< unsigned int > |
States that unsigned int has the trait is_subset_of_integers_type . More... | |
struct | is_subset_of_integers_type< unsigned long int > |
States that unsigned long int has the trait is_subset_of_integers_type . More... | |
struct | is_subset_of_integers_type< unsigned long long int > |
States that unsigned long long int has the trait is_subset_of_integers_type . More... | |
struct | IntegralType< float > |
States that IntegralType of float is sint . More... | |
struct | IntegralType< double > |
States that IntegralType of double is sint . More... | |
struct | IntegralType< long double > |
States that IntegralType of long double is sint . More... | |
struct | constant_zero |
struct | constant_one |
class | FactorizationFactory |
This class provides a cached factorization for numbers. More... | |
class | FactorizationFactory< uint > |
This class provides a cached prime factorization for std::size_t. More... | |
struct | IntegerPairCompare |
class | GaloisField |
A finite field. More... | |
class | GaloisFieldManager |
class | GFNumber |
Galois Field numbers, i.e. More... | |
class | PrimeFactory |
This class provides a convenient way to enumerate primes. More... | |
struct | remove_all |
struct | remove_all< T, T > |
struct | has_subtype |
This template is designed to provide types that are related to other types. More... | |
class | UnivariatePolynomial |
This class represents a univariate polynomial with coefficients of an arbitrary type. More... | |
class | MultivariatePolynomial |
The general-purpose multivariate polynomial class. More... | |
struct | is_rational_type |
States if a type is a rational type. More... | |
struct | is_subset_of_rationals_type |
States if a type represents a subset of all rationals and the representation is similar to a rational. More... | |
struct | is_field_type |
States if a type is a field. More... | |
struct | is_field_type< GFNumber< C > > |
States that a Gallois field is a field. More... | |
struct | is_finite_type |
States if a type represents only a finite domain. More... | |
struct | is_finite_type< GFNumber< C > > |
Type trait is_finite_type_domain. More... | |
struct | is_float_type |
States if a type is a floating point type. More... | |
struct | is_integer_type |
States if a type is an integer type. More... | |
struct | is_subset_of_integers_type |
States if a type represents a subset of all integers. More... | |
struct | is_number_type |
States if a type is a number type. More... | |
struct | is_number_type< GFNumber< C > > |
struct | characteristic |
Type trait for the characteristic of the given field (template argument). More... | |
struct | IntegralType |
Gives the corresponding integral type. More... | |
struct | IntegralType< GFNumber< C > > |
struct | UnderlyingNumberType |
Gives the underlying number type of a complex object. More... | |
class | PreventConversion |
class | Context |
class | ContextPolynomial |
struct | needs_context_type< ContextPolynomial< Coeff, Ordering, Policies > > |
struct | is_polynomial_type< ContextPolynomial< Coeff, Ordering, Policies > > |
struct | is_polynomial_type |
struct | needs_cache_type |
struct | needs_context_type |
struct | is_factorized_type |
struct | Chebyshev |
Implements a generator for Chebyshev polynomials. More... | |
struct | DivisionResult |
A strongly typed pair encoding the result of a division, being a quotient and a remainder. More... | |
class | EZGCD |
Extended Zassenhaus algorithm for multivariate GCD calculation. More... | |
class | MultivariateHorner |
struct | strategy |
class | DiophantineEquations |
Includes the algorithms 6.2 and 6.3 from the book Algorithms for Computer Algebra by Geddes, Czaper, Labahn. More... | |
class | MultivariateHensel |
class | TaylorExpansion |
class | Monomial |
The general-purpose monomials. More... | |
struct | hashLess |
struct | hashEqual |
struct | MonomialComparator |
A class for term orderings. More... | |
class | MonomialPool |
struct | is_polynomial_type< carl::MultivariatePolynomial< T, O, P > > |
struct | UnderlyingNumberType< MultivariatePolynomial< C, O, P > > |
States that UnderlyingNumberType of MultivariatePolynomial<C,O,P> is UnderlyingNumberType<C>::type. More... | |
struct | NoAllocator |
struct | NoReasons |
struct | BVReasons |
struct | StdMultivariatePolynomialPolicies |
The default policy for polynomials. More... | |
class | Term |
Represents a single term, that is a numeric coefficient and a monomial. More... | |
class | TermAdditionManager |
class | IntRepRealAlgebraicNumber |
struct | is_polynomial_type< carl::UnivariatePolynomial< T > > |
struct | UnderlyingNumberType< UnivariatePolynomial< C > > |
States that UnderlyingNumberType of UnivariatePolynomial<T> is UnderlyingNumberType<C>::type. More... | |
class | VarInfo |
class | VarsInfo |
struct | is_ran_type |
class | RealRootsResult |
struct | is_ran_type< IntRepRealAlgebraicNumber< Number > > |
struct | RealAlgebraicNumberThom |
struct | is_ran_type< RealAlgebraicNumberThom< Number > > |
class | SignCondition |
class | SignDetermination |
class | GroebnerBase |
struct | BaseRepresentation |
class | MultiplicationTable |
class | TarskiQueryManager |
class | ThomEncoding |
class | RealAlgebraicNumber |
class | SqrtEx |
struct | CompileInfo |
Compile time generated structure holding information about compiler and system version. More... | |
struct | CMakeOptionPrinter |
class | Bitset |
This class is a simple wrapper around boost::dynamic_bitset. More... | |
class | BitVector |
class | tree |
This class represents a tree. More... | |
class | CompactTree |
This class packs a complete binary tree in a vector. More... | |
class | Heap |
A heap priority queue. More... | |
class | Timer |
This classes provides an easy way to obtain the current number of milliseconds that the program has been running. More... | |
class | Cache |
class | IDPool |
class | Singleton |
Base class that implements a singleton. More... | |
struct | overloaded |
struct | dependent_bool_type |
struct | any |
Meta-logical disjunction. More... | |
struct | any< Head, Tail... > |
struct | all |
Meta-logical conjunction. More... | |
struct | all< Head, Tail... > |
struct | Void |
struct | is_instantiation_of |
struct | is_instantiation_of< Template, Template< Args... > > |
struct | hash_inserter |
Utility functor to hash a sequence of object using an output iterator. More... | |
struct | mpl_unique |
struct | mpl_concatenate_impl |
struct | mpl_concatenate_impl< 1, Front, Tail... > |
struct | mpl_concatenate |
struct | mpl_variant_of_impl |
struct | mpl_variant_of_impl< true, Vector, Unpacked... > |
struct | mpl_variant_of |
struct | equal_to |
Alternative specialization of std::equal_to for pointer types. More... | |
struct | equal_to< T *, mayBeNull > |
struct | equal_to< std::shared_ptr< T >, mayBeNull > |
struct | not_equal_to |
struct | not_equal_to< T *, mayBeNull > |
struct | not_equal_to< std::shared_ptr< T >, mayBeNull > |
struct | less |
Alternative specialization of std::less for pointer types. More... | |
struct | less< T *, mayBeNull > |
struct | less< std::shared_ptr< T >, mayBeNull > |
struct | greater |
struct | greater< T *, mayBeNull > |
struct | greater< std::shared_ptr< T >, mayBeNull > |
struct | hash |
Alternative specialization of std::hash for pointer types. More... | |
struct | hash< T *, mayBeNull > |
struct | hash< std::shared_ptr< T >, mayBeNull > |
class | tuple_convert |
class | tuple_convert< Converter, Information, Out > |
struct | is_from_variant |
struct | convertible_to_variant |
class | FactorizedPolynomial |
struct | needs_cache_type< FactorizedPolynomial< P > > |
struct | is_factorized_type< FactorizedPolynomial< P > > |
class | Factorization |
class | PolynomialFactorizationPair |
class | RationalFunction |
class | Constraint |
Represent a polynomial (in)equality against zero. More... | |
struct | CachedConstraintContent |
class | BVConstraint |
class | BVConstraintPool |
class | BVTerm |
struct | BVUnaryContent |
struct | BVBinaryContent |
struct | BVExtractContent |
struct | BVTermContent |
class | BVTermPool |
class | BVValue |
class | BVVariable |
Represent a BitVector-Variable. More... | |
class | Pool |
class | Condition |
class | Formula |
Represent an SMT formula, which can be an atom for some background theory or a boolean combination of (sub)formulas. More... | |
class | FormulaPool |
struct | QuantifierContent |
Stores the variables and the formula bound by a quantifier. More... | |
class | FormulaContent |
class | Model |
Represent a collection of assignments/mappings from variables to values. More... | |
class | ModelFormulaSubstitution |
class | ModelMVRootSubstitution |
class | ModelPolynomialSubstitution |
class | ModelSubstitution |
Represent a expression for a ModelValue with variables as placeholders, where the final expression's value depends on the bindings/values of these variables. More... | |
class | ModelValue |
Represent a sum type/variant over the different kinds of values that can be assigned to the different kinds of variables that exist in CARL and to use them in a more uniform way, e.g. More... | |
struct | InfinityValue |
This class represents infinity or minus infinity, depending on its flag positive. More... | |
class | ModelVariable |
Represent a sum type/variant over the different kinds of variables that exist in CARL to use them in a more uniform way, e.g. More... | |
class | ModelConditionalSubstitution |
class | Sort |
Implements a sort (for defining types of variables and functions). More... | |
struct | SortContent |
The actual content of a sort. More... | |
class | SortManager |
Implements a manager for sorts, containing the actual contents of these sort and allocating their ids. More... | |
class | SortValue |
Implements a sort value, being a value of the uninterpreted domain specified by this sort. More... | |
class | SortValueManager |
Implements a manager for sort values, containing the actual contents of these sort and allocating their ids. More... | |
class | UEquality |
Implements an uninterpreted equality, that is an equality of either two uninterpreted function instances, two uninterpreted variables, or an uninterpreted function instance and an uninterpreted variable. More... | |
class | UFInstance |
Implements an uninterpreted function instance. More... | |
class | UFInstanceContent |
The actual content of an uninterpreted function instance. More... | |
class | UFInstanceManager |
Implements a manager for uninterpreted function instances, containing their actual contents and allocating their ids. More... | |
class | UFContent |
The actual content of an uninterpreted function instance. More... | |
class | UFManager |
Implements a manager for uninterpreted functions, containing their actual contents and allocating their ids. More... | |
class | UFModel |
Implements a sort value, being a value of the uninterpreted domain specified by this sort. More... | |
class | UninterpretedFunction |
Implements an uninterpreted function. More... | |
class | UTerm |
Implements an uninterpreted term, that is either an uninterpreted variable or an uninterpreted function instance. More... | |
class | UVariable |
Implements an uninterpreted variable. More... | |
Typedefs | |
template<typename T > | |
using | Assignment = std::map< Variable, T > |
template<typename T > | |
using | OrderedAssignment = std::vector< std::pair< Variable, T > > |
using | Variables = std::set< Variable > |
template<typename Pol > | |
using | Factors = std::map< Pol, uint > |
template<typename Poly > | |
using | EncodingCache = std::map< MultivariateRoot< Poly >, std::pair< std::vector< BasicConstraint< Poly > >, Variable > > |
typedef CriticalPairs< Heap, CriticalPairConfiguration< GrLexOrdering > > | CritPairs |
using | precision_t = std::size_t |
using | uint = std::uint64_t |
using | sint = std::int64_t |
template<typename C > | |
using | IntegralTypeIfDifferent = typename std::enable_if<!std::is_same< C, typename IntegralType< C >::type >::value, typename IntegralType< C >::type >::type |
using | exponent = std::size_t |
Type of an exponent. More... | |
using | MonomialOrderingFunction = CompareResult(*)(const Monomial::Arg &, const Monomial::Arg &) |
using | LexOrdering = MonomialComparator< Monomial::compareLexical, false > |
using | GrLexOrdering = MonomialComparator< Monomial::compareGradedLexical, true > |
template<typename Coefficient > | |
using | UnivariatePolynomialPtr = std::shared_ptr< UnivariatePolynomial< Coefficient > > |
template<typename Coefficient > | |
using | FactorMap = std::map< UnivariatePolynomial< Coefficient >, uint > |
template<typename Coeff > | |
using | CoeffMatrix = Eigen::Matrix< Coeff, Eigen::Dynamic, Eigen::Dynamic > |
template<typename T , class I > | |
using | TypeInfoPair = std::pair< T *, I > |
template<bool If, typename Then , typename Else > | |
using | Conditional = typename std::conditional< If, Then, Else >::type |
template<bool B, typename... T> | |
using | Bool = typename dependent_bool_type< B, T... >::type |
template<typename T > | |
using | Not = Bool<!T::value > |
Meta-logical negation. More... | |
template<typename... Condition> | |
using | EnableIf = typename std::enable_if< all< Condition... >::value, dtl::enabled >::type |
template<typename... Condition> | |
using | DisableIf = typename std::enable_if< Not< any< Condition... > >::value, dtl::enabled >::type |
template<bool Condition> | |
using | EnableIfBool = typename std::enable_if< Condition, dtl::enabled >::type |
template<typename T > | |
using | pointerEqual = carl::equal_to< const T *, false > |
template<typename T > | |
using | pointerEqualWithNull = carl::equal_to< const T *, true > |
template<typename T > | |
using | sharedPointerEqual = carl::equal_to< std::shared_ptr< const T >, false > |
template<typename T > | |
using | sharedPointerEqualWithNull = carl::equal_to< std::shared_ptr< const T >, true > |
template<typename T > | |
using | pointerLess = carl::less< const T *, false > |
template<typename T > | |
using | pointerLessWithNull = carl::less< const T *, true > |
template<typename T > | |
using | sharedPointerLess = carl::less< std::shared_ptr< const T > *, false > |
template<typename T > | |
using | sharedPointerLessWithNull = carl::less< std::shared_ptr< const T >, true > |
template<typename T > | |
using | pointerHash = carl::hash< T *, false > |
template<typename T > | |
using | pointerHashWithNull = carl::hash< T *, true > |
template<typename T > | |
using | sharedPointerHash = carl::hash< std::shared_ptr< const T > *, false > |
template<typename T > | |
using | sharedPointerHashWithNull = carl::hash< std::shared_ptr< const T > *, true > |
template<typename T > | |
using | PointerSet = std::set< const T *, pointerLess< T > > |
template<typename T > | |
using | PointerMultiSet = std::multiset< const T *, pointerLess< T > > |
template<typename T1 , typename T2 > | |
using | PointerMap = std::map< const T1 *, T2, pointerLess< T1 > > |
template<typename T > | |
using | SharedPointerSet = std::set< std::shared_ptr< const T >, sharedPointerLess< T > > |
template<typename T > | |
using | SharedPointerMultiSet = std::multiset< std::shared_ptr< const T >, sharedPointerLess< T > > |
template<typename T1 , typename T2 > | |
using | SharedPointerMap = std::map< std::shared_ptr< const T1 >, T2, sharedPointerLess< T1 > > |
template<typename T > | |
using | FastSet = std::unordered_set< T, std::hash< T > > |
template<typename T1 , typename T2 > | |
using | FastMap = std::unordered_map< T1, T2, std::hash< T1 > > |
template<typename T > | |
using | FastPointerSet = std::unordered_set< const T *, pointerHash< T >, pointerEqual< T > > |
template<typename T1 , typename T2 > | |
using | FastPointerMap = std::unordered_map< const T1 *, T2, pointerHash< T1 >, pointerEqual< T1 > > |
template<typename T > | |
using | FastSharedPointerSet = std::unordered_set< std::shared_ptr< const T >, sharedPointerHash< T >, sharedPointerEqual< T > > |
template<typename T1 , typename T2 > | |
using | FastSharedPointerMap = std::unordered_map< std::shared_ptr< const T1 >, T2, sharedPointerHash< T1 >, sharedPointerEqual< T1 > > |
template<typename T > | |
using | FastPointerSetB = std::unordered_set< const T *, pointerHashWithNull< T >, pointerEqualWithNull< T > > |
template<typename T1 , typename T2 > | |
using | FastPointerMapB = std::unordered_map< const T1 *, T2, pointerHashWithNull< T1 >, pointerEqualWithNull< T1 > > |
template<typename T > | |
using | FastSharedPointerSetB = std::unordered_set< std::shared_ptr< const T >, sharedPointerHashWithNull< T >, pointerEqualWithNull< T > > |
template<typename T1 , typename T2 > | |
using | FastSharedPointerMapB = std::unordered_map< std::shared_ptr< const T1 >, T2, sharedPointerHashWithNull< T1 >, pointerEqualWithNull< T1 > > |
template<typename P > | |
using | Coeff = typename UnderlyingNumberType< P >::type |
template<typename Poly > | |
using | Constraints = std::set< Constraint< Poly >, carl::less< Constraint< Poly >, false > > |
template<typename Pol > | |
using | ConstraintPool = pool::Pool< CachedConstraintContent< Pol > > |
template<typename Poly > | |
using | Formulas = std::vector< Formula< Poly > > |
template<typename Poly > | |
using | FormulaSet = std::set< Formula< Poly > > |
template<typename Poly > | |
using | FormulasMulti = std::multiset< Formula< Poly > > |
template<typename Pol > | |
using | ConstraintBounds = FastMap< Pol, std::map< typename Pol::NumberType, std::pair< Relation, Formula< Pol > >> > |
A map from formula pointers to a map of rationals to a pair of a constraint relation and a formula pointer. (internally used) More... | |
using | QuantifierPrefix = std::vector< std::pair< Quantifier, carl::Variable > > |
template<typename Rational , typename Poly > | |
using | ModelSubstitutionPtr = std::unique_ptr< ModelSubstitution< Rational, Poly > > |
Enumerations | |
enum class | CompareResult { LESS = -1 , EQUAL = 0 , GREATER = 1 } |
enum class | Relation { EQ = 0 , NEQ = 1 , LESS = 2 , LEQ = 4 , GREATER = 3 , GEQ = 5 } |
enum class | Sign { NEGATIVE = -1 , ZERO = 0 , POSITIVE = 1 } |
This class represents the sign of a number . More... | |
enum class | VariableType { VT_BOOL = 0 , VT_REAL = 1 , VT_INT = 2 , VT_UNINTERPRETED = 3 , VT_BITVECTOR = 4 , MIN_TYPE = VT_BOOL , MAX_TYPE = VT_BITVECTOR , TYPE_SIZE = MAX_TYPE - MIN_TYPE + 1 } |
Several types of variables are supported. More... | |
enum class | BoundType { STRICT = 0 , WEAK = 1 , INFTY = 2 } |
enum | Str2Double_Error { FLOAT_SUCCESS , FLOAT_OVERFLOW , FLOAT_UNDERFLOW , FLOAT_INCONVERTIBLE } |
enum class | CARL_RND : int { N =0 , Z =1 , U =2 , D =3 , A =4 } |
enum class | Definiteness { NEGATIVE = 0 , NEGATIVE_SEMI = 1 , NON = 2 , POSITIVE_SEMI = 3 , POSITIVE = 4 } |
Regarding a polynomial as a function , its definiteness gives information about the codomain . More... | |
enum | variableSelectionHeurisics { GREEDY_I = 0 , GREEDY_Is = 1 , GREEDY_II = 2 , GREEDY_IIs = 3 } |
enum class | SubresultantStrategy { Generic , Lazard , Ducos , Default = Lazard } |
enum class | PolynomialComparisonOrder { CauchyBound , LowDegree , Memory , Default = LowDegree } |
enum | ThomComparisonResult { LESS , LESS = -1 , LESS = 2 , EQUAL , EQUAL = 0 , GREATER , GREATER = 1 , GREATER = 3 } |
enum class | BVCompareRelation : unsigned { EQ , NEQ , ULT , ULE , UGT , UGE , SLT , SLE , SGT , SGE } |
enum class | BVTermType { CONSTANT , VARIABLE , CONCAT , EXTRACT , NOT , NEG , AND , OR , XOR , NAND , NOR , XNOR , ADD , SUB , MUL , DIV_U , DIV_S , MOD_U , MOD_S1 , MOD_S2 , EQ , LSHIFT , RSHIFT_LOGIC , RSHIFT_ARITH , LROTATE , RROTATE , EXT_U , EXT_S , REPEAT } |
enum | FormulaType { ITE , EXISTS , FORALL , TRUE , FALSE , BOOL , NOT , NOT , IMPLIES , AND , AND , OR , OR , XOR , XOR , IFF , CONSTRAINT , VARCOMPARE , VARASSIGN , BITVECTOR , UEQ } |
Represent the type of a formula to allow faster/specialized processing. More... | |
enum class | Quantifier { EXISTS , FORALL , FREE } |
enum class | Logic { QF_BV , QF_IDL , QF_LIA , QF_LIRA , QF_LRA , QF_NIA , QF_NIRA , QF_NRA , QF_PB , QF_RDL , QF_UF , NRA , LRA , UNDEFINED } |
Functions | |
template<typename P > | |
bool | operator== (const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs) |
template<typename P > | |
bool | operator!= (const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs) |
template<typename P > | |
bool | operator< (const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs) |
template<typename P > | |
bool | operator<= (const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs) |
template<typename P > | |
bool | operator> (const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs) |
template<typename P > | |
bool | operator>= (const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs) |
template<typename Pol > | |
void | variables (const BasicConstraint< Pol > &c, carlVariables &vars) |
template<typename Poly > | |
std::ostream & | operator<< (std::ostream &os, const BasicConstraint< Poly > &c) |
Prints the given constraint on the given stream. More... | |
template<typename Pol > | |
bool | is_bound (const BasicConstraint< Pol > &constr) |
template<typename Pol > | |
bool | is_lower_bound (const BasicConstraint< Pol > &constr) |
template<typename Pol > | |
bool | is_upper_bound (const BasicConstraint< Pol > &constr) |
template<typename Pol > | |
signed | compare (const BasicConstraint< Pol > &_constraintA, const BasicConstraint< Pol > &_constraintB) |
Compares _constraintA with _constraintB. More... | |
template<typename Poly > | |
std::size_t | complexity (const BasicConstraint< Poly > &c) |
template<typename ToPoly , typename FromPoly , typename = std::enable_if_t<needs_context_type<ToPoly>::value>> | |
BasicConstraint< ToPoly > | convert (const typename ToPoly::ContextType &context, const BasicConstraint< FromPoly > &c) |
template<typename ToPoly , typename FromPoly , typename = std::enable_if_t<!needs_context_type<ToPoly>::value>> | |
BasicConstraint< ToPoly > | convert (const BasicConstraint< FromPoly > &c) |
template<typename Number , typename Poly , typename = std::enable_if_t<is_number_type<Number>::value>> | |
bool | evaluate (const BasicConstraint< Poly > &c, const Assignment< Number > &m) |
template<typename Pol > | |
unsigned | satisfied_by (const BasicConstraint< Pol > &c, const Assignment< typename Pol::NumberType > &_assignment) |
Checks whether the given assignment satisfies this constraint. More... | |
template<typename Number , typename Poly > | |
boost::tribool | evaluate (const BasicConstraint< Poly > &c, const Assignment< Interval< Number >> &map) |
template<typename Pol > | |
static unsigned | consistent_with (const BasicConstraint< Pol > &c, const Assignment< Interval< double >> &_solutionInterval) |
Checks whether this constraint is consistent with the given assignment from the its variables to interval domains. More... | |
template<typename Pol > | |
static unsigned | consistent_with (const BasicConstraint< Pol > &c, const Assignment< Interval< double >> &_solutionInterval, Relation &_stricterRelation) |
Checks whether this constraint is consistent with the given assignment from the its variables to interval domains. More... | |
template<typename Pol > | |
std::optional< std::pair< Variable, Pol > > | get_substitution (const BasicConstraint< Pol > &c, bool _negated=false, Variable _exclude=carl::Variable::NO_VARIABLE, std::optional< VarsInfo< Pol >> var_info=std::nullopt) |
If this constraint represents a substitution (equation, where at least one variable occurs only linearly), this method detects a (there could be various possibilities) corresponding substitution variable and term. More... | |
template<typename Pol > | |
std::optional< std::pair< Variable, typename Pol::NumberType > > | get_assignment (const BasicConstraint< Pol > &c) |
std::ostream & | operator<< (std::ostream &os, CompareResult cr) |
std::ostream & | operator<< (std::ostream &os, const Relation &r) |
Relation | inverse (Relation r) |
Inverts the given relation symbol. More... | |
Relation | turn_around (Relation r) |
Turns around the given relation symbol, in the sense that LESS (LEQ) and GREATER (GEQ) are swapped. More... | |
std::string | toString (Relation r) |
bool | is_strict (Relation r) |
bool | is_weak (Relation r) |
bool | evaluate (Sign s, Relation r) |
template<typename T > | |
bool | evaluate (const T &t, Relation r) |
template<typename T1 , typename T2 > | |
bool | evaluate (const T1 &lhs, Relation r, const T2 &rhs) |
std::ostream & | operator<< (std::ostream &os, const Sign &sign) |
template<typename Number > | |
Sign | sgn (const Number &n) |
Obtain the sign of the given number. More... | |
template<typename InputIterator > | |
std::size_t | sign_variations (InputIterator begin, InputIterator end) |
Counts the number of sign variations in the given object range. More... | |
template<typename InputIterator , typename Function > | |
std::size_t | sign_variations (InputIterator begin, InputIterator end, const Function &f) |
Counts the number of sign variations in the given object range. More... | |
std::ostream & | operator<< (std::ostream &os, const VariableType &t) |
Streaming operator for VariableType. More... | |
std::ostream & | operator<< (std::ostream &os, Variable rhs) |
Streaming operator for Variable. More... | |
Variable | fresh_variable (VariableType vt) noexcept |
Variable | fresh_variable (const std::string &name, VariableType vt) |
Variable | fresh_bitvector_variable () noexcept |
Variable | fresh_bitvector_variable (const std::string &name) |
Variable | fresh_boolean_variable () noexcept |
Variable | fresh_boolean_variable (const std::string &name) |
Variable | fresh_real_variable () noexcept |
Variable | fresh_real_variable (const std::string &name) |
Variable | fresh_integer_variable () noexcept |
Variable | fresh_integer_variable (const std::string &name) |
Variable | fresh_uninterpreted_variable () noexcept |
Variable | fresh_uninterpreted_variable (const std::string &name) |
void | swap (Variable &lhs, Variable &rhs) |
bool | operator== (const carlVariables &lhs, const carlVariables &rhs) |
std::ostream & | operator<< (std::ostream &os, const carlVariables &vars) |
template<typename T > | |
carlVariables | variables (const T &t) |
Return the variables as collected by the methods above. More... | |
template<typename T > | |
carlVariables | boolean_variables (const T &t) |
template<typename T > | |
carlVariables | integer_variables (const T &t) |
template<typename T > | |
carlVariables | real_variables (const T &t) |
template<typename T > | |
carlVariables | arithmetic_variables (const T &t) |
template<typename T > | |
carlVariables | bitvector_variables (const T &t) |
template<typename T > | |
carlVariables | uninterpreted_variables (const T &t) |
template<typename ToPoly , typename FromPoly , typename = std::enable_if_t<needs_context_type<ToPoly>::value>> | |
VariableComparison< ToPoly > | convert (const typename ToPoly::ContextType &context, const VariableComparison< FromPoly > &c) |
template<typename ToPoly , typename FromPoly , typename = std::enable_if_t<!needs_context_type<ToPoly>::value>> | |
VariableComparison< ToPoly > | convert (const VariableComparison< FromPoly > &c) |
template<typename Poly > | |
void | encode_as_constraints_simple (const MultivariateRoot< Poly > &f, Assignment< typename VariableComparison< Poly >::RAN > ass, Variable var, std::vector< BasicConstraint< Poly >> &out) |
template<typename Poly > | |
void | encode_as_constraints_thom (const MultivariateRoot< Poly > &f, Assignment< typename VariableComparison< Poly >::RAN > ass, Variable var, std::vector< BasicConstraint< Poly >> &out) |
template<typename Poly > | |
std::pair< std::vector< BasicConstraint< Poly > >, Variable > | encode_as_constraints (const MultivariateRoot< Poly > &f, Assignment< typename VariableComparison< Poly >::RAN > ass, EncodingCache< Poly > cache) |
template<typename Poly > | |
std::pair< std::vector< BasicConstraint< Poly > >, BasicConstraint< Poly > > | encode_as_constraints (const VariableComparison< Poly > &f, const Assignment< typename VariableComparison< Poly >::RAN > &ass, EncodingCache< Poly > cache) |
template<typename Poly > | |
bool | operator== (const MultivariateRoot< Poly > &lhs, const MultivariateRoot< Poly > &rhs) |
template<typename Poly > | |
bool | operator< (const MultivariateRoot< Poly > &lhs, const MultivariateRoot< Poly > &rhs) |
template<typename P > | |
std::ostream & | operator<< (std::ostream &os, const MultivariateRoot< P > &mr) |
template<typename Poly > | |
void | variables (const MultivariateRoot< Poly > &mr, carlVariables &vars) |
Add the variables mentioned in underlying polynomial, excluding the root-variable "_z". More... | |
template<typename Poly > | |
void | substitute_inplace (MultivariateRoot< Poly > &mr, Variable var, const Poly &poly) |
Create a copy of the underlying polynomial with the given variable replaced by the given polynomial. More... | |
template<typename Poly > | |
MultivariateRoot< Poly > | convert_to_mvroot (const typename MultivariateRoot< Poly >::RAN &ran, Variable var) |
template<typename Poly > | |
std::optional< typename MultivariateRoot< Poly >::RAN > | evaluate (const MultivariateRoot< Poly > &mr, const carl::Assignment< typename MultivariateRoot< Poly >::RAN > &m) |
Return the emerging algebraic real after pluggin in a subpoint to replace all variables with algebraic reals that are not the root-variable "_z". More... | |
template<typename Pol > | |
void | variables (const VariableAssignment< Pol > &f, carlVariables &vars) |
template<typename Poly > | |
bool | operator== (const VariableAssignment< Poly > &lhs, const VariableAssignment< Poly > &rhs) |
template<typename Poly > | |
bool | operator< (const VariableAssignment< Poly > &lhs, const VariableAssignment< Poly > &rhs) |
template<typename Poly > | |
std::ostream & | operator<< (std::ostream &os, const VariableAssignment< Poly > &va) |
template<typename Poly , std::enable_if_t<!needs_context_type< Poly >::value, bool > = true> | |
std::optional< BasicConstraint< Poly > > | as_constraint (const VariableComparison< Poly > &f) |
Convert this variable comparison "v < root(..)" into a simpler polynomial (in)equality against zero "p(..) < 0" if that is possible. More... | |
template<typename Poly , std::enable_if_t<!needs_context_type< Poly >::value, bool > = true> | |
Poly | defining_polynomial (const VariableComparison< Poly > &f) |
Return a polynomial containing the lhs-variable that has a same root for the this lhs-variable as the value that rhs represent, e.g. More... | |
template<typename Poly > | |
boost::tribool | evaluate (const VariableComparison< Poly > &f, const Assignment< typename VariableComparison< Poly >::RAN > &a, bool evaluate_non_welldef=false) |
template<typename Pol > | |
void | variables (const VariableComparison< Pol > &f, carlVariables &vars) |
template<typename Poly > | |
bool | operator== (const VariableComparison< Poly > &lhs, const VariableComparison< Poly > &rhs) |
template<typename Poly > | |
bool | operator< (const VariableComparison< Poly > &lhs, const VariableComparison< Poly > &rhs) |
template<typename Poly > | |
std::ostream & | operator<< (std::ostream &os, const VariableComparison< Poly > &vc) |
template<class C > | |
std::ostream & | operator<< (std::ostream &os, const ReductorEntry< C > rhs) |
int | init () |
The routine for initializing the carl library. More... | |
int | initialize () |
Method to ensure that upon inclusion, init() is called exactly once. More... | |
std::ostream & | operator<< (std::ostream &os, BoundType b) |
static BoundType | get_weakest_bound_type (BoundType type1, BoundType type2) |
static BoundType | get_strictest_bound_type (BoundType type1, BoundType type2) |
static BoundType | get_other_bound_type (BoundType type) |
template<typename From , typename To , carl::DisableIf< std::is_same< From, To > > = dummy> | |
Interval< To > | convert (const Interval< From > &i) |
template<typename Number > | |
boost::tribool | evaluate (Interval< Number > interval, Relation relation) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | exp (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | exp_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | log (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | log_assign (Interval< Number > &i) |
template<typename Number > | |
std::ostream & | operator<< (std::ostream &os, const LowerBound< Number > &lb) |
template<typename Number > | |
std::ostream & | operator<< (std::ostream &os, const UpperBound< Number > &lb) |
template<typename Number > | |
bool | is_integer (const Interval< Number > &n) |
template<typename Number > | |
bool | is_zero (const Interval< Number > &i) |
Check if this interval is a point-interval containing 0. More... | |
template<typename Number > | |
bool | is_one (const Interval< Number > &i) |
Check if this interval is a point-interval containing 1. More... | |
template<typename Number > | |
Interval< Number > | div (const Interval< Number > &_lhs, const Interval< Number > &_rhs) |
Implements the division which assumes that there is no remainder. More... | |
template<typename Number > | |
Interval< Number > | quotient (const Interval< Number > &_lhs, const Interval< Number > &_rhs) |
Implements the division with remainder. More... | |
template<typename Integer , typename Number > | |
Integer | to_int (const Interval< Number > &_floatInterval) |
Casts the Interval to an arbitrary integer type which has a constructor for a native int. More... | |
template<typename Number > | |
Interval< Number > | abs (const Interval< Number > &_in) |
Method which returns the absolute value of the passed number. More... | |
template<typename Number > | |
Interval< Number > | floor (const Interval< Number > &_in) |
Method which returns the next smaller integer of this number or the number itself, if it is already an integer. More... | |
template<typename Number > | |
Interval< Number > | ceil (const Interval< Number > &_in) |
Method which returns the next larger integer of the passed number or the number itself, if it is already an integer. More... | |
template<typename Number > | |
bool | operator< (const LowerBound< Number > &lhs, const LowerBound< Number > &rhs) |
Operators for LowerBound and UpperBound. More... | |
template<typename Number > | |
bool | operator<= (const LowerBound< Number > &lhs, const LowerBound< Number > &rhs) |
template<typename Number > | |
bool | operator< (const UpperBound< Number > &lhs, const LowerBound< Number > &rhs) |
template<typename Number > | |
bool | operator<= (const LowerBound< Number > &lhs, const UpperBound< Number > &rhs) |
template<typename Number > | |
bool | operator< (const UpperBound< Number > &lhs, const UpperBound< Number > &rhs) |
template<typename Number > | |
bool | operator<= (const UpperBound< Number > &lhs, const UpperBound< Number > &rhs) |
template<typename Number > | |
bool | bounds_connect (const UpperBound< Number > &lhs, const LowerBound< Number > &rhs) |
Check whether the two bounds connect, for example as for ...3),[3... More... | |
template<typename Number > | |
bool | operator== (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the comparison of two intervals. More... | |
template<> | |
bool | operator== (const Interval< double > &lhs, const Interval< double > &rhs) |
template<typename Number > | |
bool | operator== (const Interval< Number > &lhs, const Number &rhs) |
template<typename Number > | |
bool | operator== (const Number &lhs, const Interval< Number > &rhs) |
template<typename Number > | |
bool | operator!= (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the comparison of two intervals. More... | |
template<typename Number > | |
bool | operator!= (const Interval< Number > &lhs, const Number &rhs) |
template<typename Number > | |
bool | operator!= (const Number &lhs, const Interval< Number > &rhs) |
template<typename Number > | |
bool | operator< (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the comparison of two intervals. More... | |
template<typename Number > | |
bool | operator< (const Interval< Number > &lhs, const Number &rhs) |
template<typename Number > | |
bool | operator< (const Number &lhs, const Interval< Number > &rhs) |
template<typename Number > | |
bool | operator> (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the comparison of two intervals. More... | |
template<typename Number > | |
bool | operator> (const Interval< Number > &lhs, const Number &rhs) |
template<typename Number > | |
bool | operator> (const Number &lhs, const Interval< Number > &rhs) |
template<typename Number > | |
bool | operator<= (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the comparison of two intervals. More... | |
template<typename Number > | |
bool | operator<= (const Interval< Number > &lhs, const Number &rhs) |
template<typename Number > | |
bool | operator<= (const Number &lhs, const Interval< Number > &rhs) |
template<typename Number > | |
bool | operator>= (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the comparison of two intervals. More... | |
template<typename Number > | |
bool | operator>= (const Interval< Number > &lhs, const Number &rhs) |
template<typename Number > | |
bool | operator>= (const Number &lhs, const Interval< Number > &rhs) |
template<typename Number > | |
Interval< Number > | operator+ (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the addition of two intervals. More... | |
template<typename Number > | |
Interval< Number > | operator+ (const Interval< Number > &lhs, const Number &rhs) |
Operator for the addition of an interval and a number. More... | |
template<typename Number > | |
Interval< Number > | operator+ (const Number &lhs, const Interval< Number > &rhs) |
Operator for the addition of an interval and a number. More... | |
template<typename Number > | |
Interval< Number > & | operator+= (Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the addition of an interval and a number with assignment. More... | |
template<typename Number > | |
Interval< Number > & | operator+= (Interval< Number > &lhs, const Number &rhs) |
Operator for the addition of an interval and a number with assignment. More... | |
template<typename Number > | |
Interval< Number > | operator- (const Interval< Number > &rhs) |
Unary minus. More... | |
template<typename Number > | |
Interval< Number > | operator- (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the subtraction of two intervals. More... | |
template<typename Number > | |
Interval< Number > | operator- (const Interval< Number > &lhs, const Number &rhs) |
Operator for the subtraction of an interval and a number. More... | |
template<typename Number > | |
Interval< Number > | operator- (const Number &lhs, const Interval< Number > &rhs) |
Operator for the subtraction of an interval and a number. More... | |
template<typename Number > | |
Interval< Number > & | operator-= (Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the subtraction of two intervals with assignment. More... | |
template<typename Number > | |
Interval< Number > & | operator-= (Interval< Number > &lhs, const Number &rhs) |
Operator for the subtraction of an interval and a number with assignment. More... | |
template<typename Number > | |
Interval< Number > | operator* (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the multiplication of two intervals. More... | |
template<typename Number > | |
Interval< Number > | operator* (const Interval< Number > &lhs, const Number &rhs) |
Operator for the multiplication of an interval and a number. More... | |
template<typename Number > | |
Interval< Number > | operator* (const Number &lhs, const Interval< Number > &rhs) |
Operator for the multiplication of an interval and a number. More... | |
template<typename Number > | |
Interval< Number > & | operator*= (Interval< Number > &lhs, const Interval< Number > &rhs) |
Operator for the multiplication of an interval and a number with assignment. More... | |
template<typename Number > | |
Interval< Number > & | operator*= (Interval< Number > &lhs, const Number &rhs) |
Operator for the multiplication of an interval and a number with assignment. More... | |
template<typename Number > | |
Interval< Number > | operator/ (const Interval< Number > &lhs, const Number &rhs) |
Operator for the division of an interval and a number. More... | |
template<typename Number > | |
Interval< Number > & | operator/= (Interval< Number > &lhs, const Number &rhs) |
Operator for the division of an interval and a number with assignment. More... | |
template<typename Number , typename Integer > | |
Interval< Number > | pow (const Interval< Number > &i, Integer exp) |
template<typename Number , typename Integer > | |
void | pow_assign (Interval< Number > &i, Integer exp) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | sqrt (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | sqrt_assign (Interval< Number > &i) |
template<typename Number > | |
Number | center (const Interval< Number > &i) |
Returns the center point of the interval. More... | |
template<typename Number > | |
Number | sample (const Interval< Number > &i, bool includingBounds=true) |
Searches for some point in this interval, preferably near the midpoint and with a small representation. More... | |
template<typename Number > | |
Number | sample_stern_brocot (const Interval< Number > &i, bool includingBounds=true) |
Searches for some point in this interval, preferably near the midpoint and with a small representation. More... | |
template<typename Number > | |
Number | sample_left (const Interval< Number > &i) |
Searches for some point in this interval, preferably near the left endpoint and with a small representation. More... | |
template<typename Number > | |
Number | sample_right (const Interval< Number > &i) |
Searches for some point in this interval, preferably near the right endpoint and with a small representation. More... | |
template<typename Number > | |
Number | sample_zero (const Interval< Number > &i) |
Searches for some point in this interval, preferably near zero and with a small representation. More... | |
template<typename Number > | |
Number | sample_infty (const Interval< Number > &i) |
Searches for some point in this interval, preferably far aways from zero and with a small representation. More... | |
template<typename Number > | |
bool | set_complement (const Interval< Number > &interval, Interval< Number > &resA, Interval< Number > &resB) |
Calculates the complement in a set-theoretic manner (can result in two distinct intervals). More... | |
template<typename Number > | |
bool | set_difference (const Interval< Number > &lhs, const Interval< Number > &rhs, Interval< Number > &resA, Interval< Number > &resB) |
Calculates the difference of two intervals in a set-theoretic manner: lhs \ rhs (can result in two distinct intervals). More... | |
template<typename Number > | |
Interval< Number > | set_intersection (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Intersects two intervals in a set-theoretic manner. More... | |
template<typename Number > | |
bool | set_have_intersection (const Interval< Number > &lhs, const Interval< Number > &rhs) |
template<typename Number > | |
bool | set_is_proper_subset (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Checks whether lhs is a proper subset of rhs. More... | |
template<typename Number > | |
bool | set_is_subset (const Interval< Number > &lhs, const Interval< Number > &rhs) |
Checks whether lhs is a subset of rhs. More... | |
template<typename Number > | |
bool | set_symmetric_difference (const Interval< Number > &lhs, const Interval< Number > &rhs, Interval< Number > &resA, Interval< Number > &resB) |
Calculates the symmetric difference of two intervals in a set-theoretic manner (can result in two distinct intervals). More... | |
template<typename Number > | |
bool | set_union (const Interval< Number > &lhs, const Interval< Number > &rhs, Interval< Number > &resA, Interval< Number > &resB) |
Computes the union of two intervals (can result in two distinct intervals). More... | |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | sin (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | sin_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | cos (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | cos_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | tan (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | tan_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | asin (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | asin_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | acos (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | acos_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | atan (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | atan_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | sinh (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | sinh_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | cosh (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | cosh_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | tanh (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | tanh_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | asinh (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | asinh_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | acosh (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | acosh_assign (Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
Interval< Number > | atanh (const Interval< Number > &i) |
template<typename Number , EnableIf< std::is_floating_point< Number >> = dummy> | |
void | atanh_assign (Interval< Number > &i) |
bool | is_zero (const cln::cl_I &n) |
bool | is_zero (const cln::cl_RA &n) |
bool | is_one (const cln::cl_I &n) |
bool | is_one (const cln::cl_RA &n) |
bool | is_positive (const cln::cl_I &n) |
bool | is_positive (const cln::cl_RA &n) |
bool | is_negative (const cln::cl_I &n) |
bool | is_negative (const cln::cl_RA &n) |
cln::cl_I | get_num (const cln::cl_RA &n) |
Extract the numerator from a fraction. More... | |
cln::cl_I | get_denom (const cln::cl_RA &n) |
Extract the denominator from a fraction. More... | |
bool | is_integer (const cln::cl_I &) |
Check if a number is integral. More... | |
bool | is_integer (const cln::cl_RA &n) |
Check if a fraction is integral. More... | |
std::size_t | bitsize (const cln::cl_I &n) |
Get the bit size of the representation of a integer. More... | |
std::size_t | bitsize (const cln::cl_RA &n) |
Get the bit size of the representation of a fraction. More... | |
double | to_double (const cln::cl_RA &n) |
Converts the given fraction to a double. More... | |
double | to_double (const cln::cl_I &n) |
Converts the given integer to a double. More... | |
template<typename Integer > | |
Integer | to_int (const cln::cl_I &n) |
template<typename Integer > | |
Integer | to_int (const cln::cl_RA &n) |
template<> | |
sint | to_int< sint > (const cln::cl_I &n) |
template<> | |
uint | to_int< uint > (const cln::cl_I &n) |
template<typename To , typename From > | |
To | from_int (const From &n) |
template<> | |
cln::cl_I | from_int (const uint &n) |
template<> | |
cln::cl_I | from_int (const sint &n) |
template<> | |
cln::cl_I | to_int< cln::cl_I > (const cln::cl_RA &n) |
Convert a fraction to an integer. More... | |
template<> | |
sint | to_int< sint > (const cln::cl_RA &n) |
template<> | |
uint | to_int< uint > (const cln::cl_RA &n) |
cln::cl_LF | to_lf (const cln::cl_RA &n) |
Convert a cln fraction to a cln long float. More... | |
template<> | |
cln::cl_RA | rationalize< cln::cl_RA > (double n) |
template<> | |
cln::cl_RA | rationalize< cln::cl_RA > (float n) |
template<> | |
cln::cl_RA | rationalize< cln::cl_RA > (int n) |
template<> | |
cln::cl_RA | rationalize< cln::cl_RA > (uint n) |
template<> | |
cln::cl_RA | rationalize< cln::cl_RA > (sint n) |
template<> | |
cln::cl_I | parse< cln::cl_I > (const std::string &n) |
template<> | |
bool | try_parse< cln::cl_I > (const std::string &n, cln::cl_I &res) |
template<> | |
cln::cl_RA | parse< cln::cl_RA > (const std::string &n) |
template<> | |
bool | try_parse< cln::cl_RA > (const std::string &n, cln::cl_RA &res) |
cln::cl_I | abs (const cln::cl_I &n) |
Get absolute value of an integer. More... | |
cln::cl_RA | abs (const cln::cl_RA &n) |
Get absolute value of a fraction. More... | |
cln::cl_I | round (const cln::cl_RA &n) |
Round a fraction to next integer. More... | |
cln::cl_I | round (const cln::cl_I &n) |
Round an integer to next integer, that is do nothing. More... | |
cln::cl_I | floor (const cln::cl_RA &n) |
Round down a fraction. More... | |
cln::cl_I | floor (const cln::cl_I &n) |
Round down an integer. More... | |
cln::cl_I | ceil (const cln::cl_RA &n) |
Round up a fraction. More... | |
cln::cl_I | ceil (const cln::cl_I &n) |
Round up an integer. More... | |
cln::cl_I | gcd (const cln::cl_I &a, const cln::cl_I &b) |
Calculate the greatest common divisor of two integers. More... | |
cln::cl_I & | gcd_assign (cln::cl_I &a, const cln::cl_I &b) |
Calculate the greatest common divisor of two integers. More... | |
void | divide (const cln::cl_I ÷nd, const cln::cl_I &divisor, cln::cl_I "ient, cln::cl_I &remainder) |
cln::cl_RA & | gcd_assign (cln::cl_RA &a, const cln::cl_RA &b) |
Calculate the greatest common divisor of two fractions. More... | |
cln::cl_RA | gcd (const cln::cl_RA &a, const cln::cl_RA &b) |
Calculate the greatest common divisor of two fractions. More... | |
cln::cl_I | lcm (const cln::cl_I &a, const cln::cl_I &b) |
Calculate the least common multiple of two integers. More... | |
cln::cl_RA | lcm (const cln::cl_RA &a, const cln::cl_RA &b) |
Calculate the least common multiple of two fractions. More... | |
template<> | |
cln::cl_RA | pow (const cln::cl_RA &basis, std::size_t exp) |
Calculate the power of some fraction to some positive integer. More... | |
cln::cl_RA | log (const cln::cl_RA &n) |
cln::cl_RA | log10 (const cln::cl_RA &n) |
cln::cl_RA | sin (const cln::cl_RA &n) |
cln::cl_RA | cos (const cln::cl_RA &n) |
bool | sqrt_exact (const cln::cl_RA &a, cln::cl_RA &b) |
Calculate the square root of a fraction if possible. More... | |
cln::cl_RA | sqrt (const cln::cl_RA &a) |
std::pair< cln::cl_RA, cln::cl_RA > | sqrt_safe (const cln::cl_RA &a) |
Calculate the square root of a fraction. More... | |
std::pair< cln::cl_RA, cln::cl_RA > | sqrt_fast (const cln::cl_RA &a) |
Compute square root in a fast but less precise way. More... | |
std::pair< cln::cl_RA, cln::cl_RA > | root_safe (const cln::cl_RA &a, uint n) |
cln::cl_I | mod (const cln::cl_I &a, const cln::cl_I &b) |
Calculate the remainder of the integer division. More... | |
cln::cl_RA | div (const cln::cl_RA &a, const cln::cl_RA &b) |
Divide two fractions. More... | |
cln::cl_I | div (const cln::cl_I &a, const cln::cl_I &b) |
Divide two integers. More... | |
cln::cl_RA & | div_assign (cln::cl_RA &a, const cln::cl_RA &b) |
Divide two fractions. More... | |
cln::cl_I & | div_assign (cln::cl_I &a, const cln::cl_I &b) |
Divide two integers. More... | |
cln::cl_RA | quotient (const cln::cl_RA &a, const cln::cl_RA &b) |
Divide two fractions. More... | |
cln::cl_I | quotient (const cln::cl_I &a, const cln::cl_I &b) |
Divide two integers. More... | |
cln::cl_I | remainder (const cln::cl_I &a, const cln::cl_I &b) |
Calculate the remainder of the integer division. More... | |
cln::cl_I | operator/ (const cln::cl_I &a, const cln::cl_I &b) |
Divide two integers. More... | |
cln::cl_I | operator/ (const cln::cl_I &lhs, const int &rhs) |
cln::cl_RA | reciprocal (const cln::cl_RA &a) |
std::string | toString (const cln::cl_RA &_number, bool _infix=true) |
std::string | toString (const cln::cl_I &_number, bool _infix=true) |
Str2Double_Error | str2double (double &d, char const *s) |
template<typename Number > | |
bool | AlmostEqual2sComplement (const Number &A, const Number &B, unsigned=128) |
template<> | |
bool | AlmostEqual2sComplement< double > (const double &A, const double &B, unsigned maxUlps) |
template<typename FloatType > | |
bool | is_integer (const FLOAT_T< FloatType > &in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | div (const FLOAT_T< FloatType > &_lhs, const FLOAT_T< FloatType > &_rhs) |
Implements the division which assumes that there is no remainder. More... | |
template<typename FloatType > | |
FLOAT_T< FloatType > | quotient (const FLOAT_T< FloatType > &_lhs, const FLOAT_T< FloatType > &_rhs) |
Implements the division with remainder. More... | |
template<typename Integer , typename FloatType > | |
Integer | to_int (const FLOAT_T< FloatType > &_float) |
Casts the FLOAT_T to an arbitrary integer type which has a constructor for a native int. More... | |
template<typename FloatType > | |
double | to_double (const FLOAT_T< FloatType > &_float) |
template<typename FloatType > | |
FLOAT_T< FloatType > | abs (const FLOAT_T< FloatType > &_in) |
Method which returns the absolute value of the passed number. More... | |
template<typename FloatType > | |
FLOAT_T< FloatType > | log (const FLOAT_T< FloatType > &_in) |
Method which returns the logarithm of the passed number. More... | |
template<typename FloatType > | |
FLOAT_T< FloatType > | sqrt (const FLOAT_T< FloatType > &_in) |
Method which returns the square root of the passed number. More... | |
template<typename FloatType > | |
std::pair< FLOAT_T< FloatType >, FLOAT_T< FloatType > > | sqrt_safe (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | pow (const FLOAT_T< FloatType > &_in, size_t _exp) |
template<typename FloatType > | |
FLOAT_T< FloatType > | sin (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | cos (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | asin (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | acos (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | atan (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | floor (const FLOAT_T< FloatType > &_in) |
Method which returns the next smaller integer of this number or the number itself, if it is already an integer. More... | |
template<typename FloatType > | |
FLOAT_T< FloatType > | ceil (const FLOAT_T< FloatType > &_in) |
Method which returns the next larger integer of the passed number or the number itself, if it is already an integer. More... | |
template<> | |
FLOAT_T< double > | rationalize< FLOAT_T< double > > (double n) |
template<> | |
FLOAT_T< float > | rationalize< FLOAT_T< float > > (float n) |
template<> | |
FLOAT_T< mpq_class > | rationalize< FLOAT_T< mpq_class > > (double n) |
mpz_class | get_denom (const FLOAT_T< mpq_class > &_in) |
Implicitly converts the number to a rational and returns the denominator. More... | |
mpz_class | get_num (const FLOAT_T< mpq_class > &_in) |
Implicitly converts the number to a rational and returns the nominator. More... | |
template<typename FloatType > | |
bool | is_zero (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
bool | isInfinity (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
bool | isNan (const FLOAT_T< FloatType > &_in) |
template<> | |
bool | AlmostEqual2sComplement< FLOAT_T< double > > (const FLOAT_T< double > &A, const FLOAT_T< double > &B, unsigned maxUlps) |
bool | sqrt_exact (const mpq_class &a, mpq_class &b) |
Calculate the square root of a fraction if possible. More... | |
mpq_class | sqrt (const mpq_class &a) |
std::pair< mpq_class, mpq_class > | sqrt_safe (const mpq_class &a) |
std::pair< mpq_class, mpq_class > | root_safe (const mpq_class &a, uint n) |
Calculate the nth root of a fraction. More... | |
std::pair< mpq_class, mpq_class > | sqrt_fast (const mpq_class &a) |
Compute square root in a fast but less precise way. More... | |
template<> | |
mpz_class | parse< mpz_class > (const std::string &n) |
template<> | |
bool | try_parse< mpz_class > (const std::string &n, mpz_class &res) |
template<> | |
mpq_class | parse< mpq_class > (const std::string &n) |
template<> | |
bool | try_parse< mpq_class > (const std::string &n, mpq_class &res) |
std::string | toString (const mpq_class &_number, bool _infix) |
std::string | toString (const mpz_class &_number, bool _infix) |
bool | is_zero (const mpz_class &n) |
Informational functions. More... | |
bool | is_zero (const mpq_class &n) |
bool | is_one (const mpz_class &n) |
bool | is_one (const mpq_class &n) |
bool | is_positive (const mpz_class &n) |
bool | is_positive (const mpq_class &n) |
bool | is_negative (const mpz_class &n) |
bool | is_negative (const mpq_class &n) |
mpz_class | get_num (const mpq_class &n) |
mpz_class | get_num (const mpz_class &n) |
mpz_class | get_denom (const mpq_class &n) |
mpz_class | get_denom (const mpz_class &n) |
bool | is_integer (const mpq_class &n) |
bool | is_integer (const mpz_class &) |
std::size_t | bitsize (const mpz_class &n) |
Get the bit size of the representation of a integer. More... | |
std::size_t | bitsize (const mpq_class &n) |
Get the bit size of the representation of a fraction. More... | |
double | to_double (const mpq_class &n) |
Conversion functions. More... | |
double | to_double (const mpz_class &n) |
template<typename Integer > | |
Integer | to_int (const mpz_class &n) |
template<> | |
sint | to_int< sint > (const mpz_class &n) |
template<> | |
uint | to_int< uint > (const mpz_class &n) |
template<typename Integer > | |
Integer | to_int (const mpq_class &n) |
template<> | |
mpz_class | to_int< mpz_class > (const mpq_class &n) |
Convert a fraction to an integer. More... | |
template<> | |
sint | to_int< sint > (const mpq_class &n) |
Convert a fraction to an unsigned. More... | |
template<> | |
uint | to_int< uint > (const mpq_class &n) |
template<typename T > | |
T | rationalize (const PreventConversion< mpq_class > &) |
template<> | |
mpq_class | rationalize< mpq_class > (float n) |
template<> | |
mpq_class | rationalize< mpq_class > (double n) |
template<> | |
mpq_class | rationalize< mpq_class > (int n) |
template<> | |
mpq_class | rationalize< mpq_class > (uint n) |
template<> | |
mpq_class | rationalize< mpq_class > (sint n) |
template<> | |
mpq_class | rationalize< mpq_class > (const PreventConversion< mpq_class > &n) |
mpz_class | abs (const mpz_class &n) |
Basic Operators. More... | |
mpq_class | abs (const mpq_class &n) |
mpz_class | round (const mpq_class &n) |
mpz_class | round (const mpz_class &n) |
mpz_class | floor (const mpq_class &n) |
mpz_class | floor (const mpz_class &n) |
mpz_class | ceil (const mpq_class &n) |
mpz_class | ceil (const mpz_class &n) |
mpz_class | gcd (const mpz_class &a, const mpz_class &b) |
mpz_class | lcm (const mpz_class &a, const mpz_class &b) |
mpq_class | gcd (const mpq_class &a, const mpq_class &b) |
mpz_class & | gcd_assign (mpz_class &a, const mpz_class &b) |
Calculate the greatest common divisor of two integers. More... | |
mpq_class & | gcd_assign (mpq_class &a, const mpq_class &b) |
Calculate the greatest common divisor of two integers. More... | |
mpq_class | lcm (const mpq_class &a, const mpq_class &b) |
mpq_class | log (const mpq_class &n) |
mpq_class | log10 (const mpq_class &n) |
mpq_class | sin (const mpq_class &n) |
mpq_class | cos (const mpq_class &n) |
template<> | |
mpz_class | pow (const mpz_class &basis, std::size_t exp) |
template<> | |
mpq_class | pow (const mpq_class &basis, std::size_t exp) |
mpz_class | mod (const mpz_class &n, const mpz_class &m) |
mpz_class | remainder (const mpz_class &n, const mpz_class &m) |
mpz_class | quotient (const mpz_class &n, const mpz_class &d) |
mpz_class | operator/ (const mpz_class &n, const mpz_class &d) |
mpq_class | quotient (const mpq_class &n, const mpq_class &d) |
mpq_class | operator/ (const mpq_class &n, const mpq_class &d) |
void | divide (const mpz_class ÷nd, const mpz_class &divisor, mpz_class "ient, mpz_class &remainder) |
mpq_class | div (const mpq_class &a, const mpq_class &b) |
Divide two fractions. More... | |
mpz_class | div (const mpz_class &a, const mpz_class &b) |
Divide two integers. More... | |
mpz_class & | div_assign (mpz_class &a, const mpz_class &b) |
Divide two integers. More... | |
mpq_class & | div_assign (mpq_class &a, const mpq_class &b) |
Divide two integers. More... | |
mpq_class | reciprocal (const mpq_class &a) |
mpq_class | operator* (const mpq_class &lhs, const mpq_class &rhs) |
bool | is_zero (double n) |
Informational functions. More... | |
bool | is_positive (double n) |
bool | is_negative (double n) |
bool | isNaN (double d) |
bool | isInf (double d) |
bool | is_number (double d) |
bool | is_integer (double d) |
bool | is_integer (sint) |
std::size_t | bitsize (unsigned) |
double | to_double (sint n) |
Conversion functions. More... | |
double | to_double (double n) |
template<typename Integer > | |
Integer | to_int (double n) |
template<> | |
sint | to_int< sint > (double n) |
template<> | |
uint | to_int< uint > (double n) |
template<> | |
double | rationalize (double n) |
template<typename T > | |
std::enable_if< std::is_arithmetic< typename remove_all< T >::type >::value, std::string >::type | toString (const T &n, bool) |
double | floor (double n) |
Basic Operators. More... | |
double | ceil (double n) |
double | abs (double n) |
uint | mod (uint n, uint m) |
sint | mod (sint n, sint m) |
sint | remainder (sint n, sint m) |
sint | div (sint n, sint m) |
sint | quotient (sint n, sint m) |
void | divide (sint dividend, sint divisor, sint &quo, sint &rem) |
double | sin (double in) |
double | cos (double in) |
double | acos (double in) |
double | sqrt (double in) |
std::pair< double, double > | sqrt_safe (double in) |
double | pow (double in, uint exp) |
double | log (double in) |
double | log10 (double in) |
template<typename Number > | |
Number | highestPower (const Number &n) |
Returns the highest power of two below n. More... | |
template<typename From , typename To , carl::DisableIf< std::is_same< From, To > > > | |
To | convert (const From &) |
template<typename Rational > | |
double | roundDown (const Rational &o, bool overapproximate=false) |
Returns a down-rounded representation of the given numeric. More... | |
template<typename Rational > | |
double | roundUp (const Rational &o, bool overapproximate=false) |
Returns a up-rounded representation of the given numeric. More... | |
template<> | |
mpq_class | convert< double, mpq_class > (const double &n) |
template<> | |
double | convert< mpq_class, double > (const mpq_class &n) |
template<> | |
FLOAT_T< mpq_class > | convert< double, FLOAT_T< mpq_class > > (const double &n) |
template<> | |
double | convert< FLOAT_T< mpq_class >, double > (const FLOAT_T< mpq_class > &n) |
template<> | |
FLOAT_T< double > | convert< mpq_class, FLOAT_T< double > > (const mpq_class &n) |
template<> | |
mpq_class | convert< FLOAT_T< double >, mpq_class > (const FLOAT_T< double > &n) |
template<> | |
mpq_class | convert< FLOAT_T< mpq_class >, mpq_class > (const FLOAT_T< mpq_class > &n) |
template<> | |
FLOAT_T< mpq_class > | convert< mpq_class, FLOAT_T< mpq_class > > (const mpq_class &n) |
template<> | |
double | convert< FLOAT_T< double >, double > (const FLOAT_T< double > &n) |
template<> | |
FLOAT_T< double > | convert< double, FLOAT_T< double > > (const double &n) |
template<typename IntegerT > | |
bool | is_zero (const GFNumber< IntegerT > &_in) |
template<typename IntegerT > | |
bool | is_one (const GFNumber< IntegerT > &_in) |
template<typename IntegerT > | |
GFNumber< IntegerT > | quotient (const GFNumber< IntegerT > &lhs, const GFNumber< IntegerT > &rhs) |
template<typename IntegerT > | |
GFNumber< IntegerT > | abs (const GFNumber< IntegerT > &n) |
template<typename IntegerT > | |
bool | is_integer (const GFNumber< IntegerT > &) |
template<typename IntegerType > | |
std::string | toString (const GFNumber< IntegerType > &_number, bool) |
Creates the string representation to the given galois field number. More... | |
template<typename T > | |
bool | is_zero (const T &t) |
template<typename T > | |
bool | is_one (const T &t) |
template<typename T , EnableIf< has_is_positive< T >> > | |
bool | is_positive (const T &t) |
template<typename T , EnableIf< has_is_negative< T >> > | |
bool | is_negative (const T &t) |
template<typename T , DisableIf< is_interval_type< T >> = dummy> | |
T | pow (const T &basis, std::size_t exp) |
Implements a fast exponentiation on an arbitrary type T. More... | |
template<typename T > | |
void | pow_assign (T &t, std::size_t exp) |
Implements a fast exponentiation on an arbitrary type T. More... | |
template<typename T > | |
T | rationalize (float n) |
template<typename T > | |
T | rationalize (int n) |
template<typename T > | |
T | rationalize (sint n) |
template<typename T > | |
T | rationalize (uint n) |
template<typename Number > | |
int | to_int (const Number &n) |
template<typename T > | |
T | parse (const std::string &n) |
template<typename T > | |
bool | try_parse (const std::string &n, T &res) |
template<typename T , typename T2 > | |
bool | fits_within (const T2 &t) |
template<typename T , typename S , std::enable_if_t< is_polynomial_type< T >::value &&is_polynomial_type< S >::value &&!needs_context_type< T >::value, int > = 0> | |
T | convert (const S &r) |
template<typename T , typename S , std::enable_if_t< is_polynomial_type< T >::value &&is_polynomial_type< S >::value &&needs_context_type< T >::value, int > = 0> | |
T | convert (const typename T::ContextType &c, const S &r) |
std::ostream & | operator<< (std::ostream &os, const Context &ctx) |
template<typename Coeff , typename Ordering , typename Policies > | |
bool | is_constant (const ContextPolynomial< Coeff, Ordering, Policies > &p) |
template<typename Coeff , typename Ordering , typename Policies > | |
bool | is_zero (const ContextPolynomial< Coeff, Ordering, Policies > &p) |
template<typename Coeff , typename Ordering , typename Policies > | |
bool | is_linear (const ContextPolynomial< Coeff, Ordering, Policies > &p) |
template<typename Coeff , typename Ordering , typename Policies > | |
bool | is_number (const ContextPolynomial< Coeff, Ordering, Policies > &p) |
template<typename Coeff , typename Ordering , typename Policies > | |
std::size_t | level_of (const ContextPolynomial< Coeff, Ordering, Policies > &p) |
template<typename Coeff , typename Ordering , typename Policies > | |
void | variables (const ContextPolynomial< Coeff, Ordering, Policies > &p, carlVariables &vars) |
template<typename Coeff , typename Ordering , typename Policies > | |
bool | operator< (const ContextPolynomial< Coeff, Ordering, Policies > &lhs, const ContextPolynomial< Coeff, Ordering, Policies > &rhs) |
template<typename Coeff , typename Ordering , typename Policies > | |
bool | operator== (const ContextPolynomial< Coeff, Ordering, Policies > &lhs, const ContextPolynomial< Coeff, Ordering, Policies > &rhs) |
template<typename Coeff , typename Ordering , typename Policies > | |
std::ostream & | operator<< (std::ostream &os, const ContextPolynomial< Coeff, Ordering, Policies > &rhs) |
template<typename Coeff , typename Ordering , typename Policies > | |
auto | irreducible_factors (const ContextPolynomial< Coeff, Ordering, Policies > &p, bool constants=true) |
template<typename Coeff , typename Ordering , typename Policies > | |
auto | discriminant (const ContextPolynomial< Coeff, Ordering, Policies > &p) |
template<typename Coeff , typename Ordering , typename Policies > | |
auto | resultant (const ContextPolynomial< Coeff, Ordering, Policies > &p, const ContextPolynomial< Coeff, Ordering, Policies > &q) |
std::size_t | bitsize (const Monomial &m) |
template<typename Coeff > | |
std::size_t | bitsize (const Term< Coeff > &t) |
template<typename Coeff , typename Ordering , typename Policies > | |
std::size_t | bitsize (const MultivariatePolynomial< Coeff, Ordering, Policies > &p) |
std::size_t | complexity (const Monomial &m) |
template<typename Coeff > | |
std::size_t | complexity (const Term< Coeff > &t) |
template<typename Coeff , typename Ordering , typename Policies > | |
std::size_t | complexity (const MultivariatePolynomial< Coeff, Ordering, Policies > &p) |
template<typename Coeff > | |
std::size_t | complexity (const UnivariatePolynomial< Coeff > &p) |
template<typename Coeff > | |
Coeff | content (const UnivariatePolynomial< Coeff > &p) |
The content of a polynomial is the gcd of the coefficients of the normal part of a polynomial. More... | |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | coprimePart (const MultivariatePolynomial< C, O, P > &p, const MultivariatePolynomial< C, O, P > &q) |
Calculates the coprime part of p and q. More... | |
std::ostream & | operator<< (std::ostream &os, Definiteness d) |
template<typename Coeff > | |
Definiteness | definiteness (const Term< Coeff > &t) |
template<typename C , typename O , typename P > | |
Definiteness | definiteness (const MultivariatePolynomial< C, O, P > &p, bool full_effort=true) |
auto | total_degree (const Monomial &m) |
Gives the total degree, i.e. More... | |
bool | is_constant (const Monomial &m) |
Checks whether the monomial is a constant. More... | |
bool | is_linear (const Monomial &m) |
Checks whether the monomial has exactly degree one. More... | |
bool | is_at_most_linear (const Monomial &m) |
Checks whether the monomial has at most degree one. More... | |
template<typename Coeff > | |
std::size_t | total_degree (const Term< Coeff > &t) |
Gives the total degree, i.e. More... | |
template<typename Coeff > | |
bool | is_constant (const Term< Coeff > &t) |
Checks whether the monomial is a constant. More... | |
template<typename Coeff > | |
bool | is_linear (const Term< Coeff > &t) |
Checks whether the monomial has exactly the degree one. More... | |
template<typename Coeff > | |
bool | is_at_most_linear (const Term< Coeff > &t) |
Checks whether the monomial has at most degree one. More... | |
template<typename Coeff , typename Ordering , typename Policies > | |
std::size_t | total_degree (const MultivariatePolynomial< Coeff, Ordering, Policies > &p) |
Calculates the max. More... | |
template<typename Coeff , typename Ordering , typename Policies > | |
bool | is_constant (const MultivariatePolynomial< Coeff, Ordering, Policies > &p) |
Check if the polynomial is linear. More... | |
template<typename Coeff , typename Ordering , typename Policies > | |
bool | is_linear (const MultivariatePolynomial< Coeff, Ordering, Policies > &p) |
Check if the polynomial is linear. More... | |
template<typename Coeff > | |
std::size_t | total_degree (const UnivariatePolynomial< Coeff > &p) |
Returns the total degree of the polynomial, that is the maximum degree of any monomial. More... | |
template<typename Coeff > | |
bool | is_constant (const UnivariatePolynomial< Coeff > &p) |
Checks whether the polynomial is constant with respect to the main variable. More... | |
template<typename Coeff > | |
bool | is_linear (const UnivariatePolynomial< Coeff > &p) |
template<typename T , EnableIf< is_number_type< T >> = dummy> | |
const T & | derivative (const T &t, Variable, std::size_t n=1) |
Computes the n'th derivative of a number, which is either the number itself (for n = 0) or zero. More... | |
std::pair< std::size_t, Monomial::Arg > | derivative (const Monomial::Arg &m, Variable v, std::size_t n=1) |
Computes the (partial) n'th derivative of this monomial with respect to the given variable. More... | |
template<typename C > | |
Term< C > | derivative (const Term< C > &t, Variable v, std::size_t n=1) |
Computes the n'th derivative of t with respect to v. More... | |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | derivative (const MultivariatePolynomial< C, O, P > &p, Variable v, std::size_t n=1) |
Computes the n'th derivative of p with respect to v. More... | |
template<typename C > | |
UnivariatePolynomial< C > | derivative (const UnivariatePolynomial< C > &p, std::size_t n=1) |
Computes the n'th derivative of p with respect to the main variable of p. More... | |
template<typename C > | |
UnivariatePolynomial< C > | derivative (const UnivariatePolynomial< C > &p, Variable v, std::size_t n=1) |
Computes the n'th derivative of p with respect to v. More... | |
template<typename T > | |
std::vector< T > | solveDiophantine (MultivariatePolynomial< T > &p) |
Diophantine Equations solver. More... | |
template<typename T > | |
T | extended_gcd_integer (T a, T b, T &s, T &t) |
template<typename Coeff > | |
Term< Coeff > | divide (const Term< Coeff > &t, const Coeff &c) |
template<typename Coeff > | |
bool | try_divide (const Term< Coeff > &t, const Coeff &c, Term< Coeff > &res) |
template<typename Coeff > | |
bool | try_divide (const Term< Coeff > &t, Variable v, Term< Coeff > &res) |
template<typename Coeff , typename Ordering , typename Policies > | |
MultivariatePolynomial< Coeff, Ordering, Policies > | divide (const MultivariatePolynomial< Coeff, Ordering, Policies > &p, const Coeff &divisor) |
Divides the polynomial by the given coefficient. More... | |
template<typename Coeff , typename Ordering , typename Policies > | |
bool | try_divide (const MultivariatePolynomial< Coeff, Ordering, Policies > ÷nd, const MultivariatePolynomial< Coeff, Ordering, Policies > &divisor, MultivariatePolynomial< Coeff, Ordering, Policies > "ient) |
Divides the polynomial by another polynomial. More... | |
template<typename Coeff , typename Ordering , typename Policies > | |
DivisionResult< MultivariatePolynomial< Coeff, Ordering, Policies > > | divide (const MultivariatePolynomial< Coeff, Ordering, Policies > ÷nd, const MultivariatePolynomial< Coeff, Ordering, Policies > &divisor) |
Calculating the quotient and the remainder, such that for a given polynomial p we have p = divisor * quotient + remainder. More... | |
template<typename Coeff > | |
bool | try_divide (const UnivariatePolynomial< Coeff > ÷nd, const Coeff &divisor, UnivariatePolynomial< Coeff > "ient) |
template<typename Coeff > | |
DivisionResult< UnivariatePolynomial< Coeff > > | divide (const UnivariatePolynomial< Coeff > &p, const Coeff &divisor) |
template<typename Coeff > | |
DivisionResult< UnivariatePolynomial< Coeff > > | divide (const UnivariatePolynomial< Coeff > &p, const typename UnderlyingNumberType< Coeff >::type &divisor) |
template<typename Coeff > | |
DivisionResult< UnivariatePolynomial< Coeff > > | divide (const UnivariatePolynomial< Coeff > ÷nd, const UnivariatePolynomial< Coeff > &divisor) |
Divides the polynomial by another polynomial. More... | |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | operator/ (const MultivariatePolynomial< C, O, P > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
template<typename Coefficient > | |
Coefficient | evaluate (const Monomial &m, const std::map< Variable, Coefficient > &substitutions) |
template<typename Coefficient > | |
Coefficient | evaluate (const Term< Coefficient > &t, const std::map< Variable, Coefficient > &map) |
template<typename C , typename O , typename P , typename SubstitutionType > | |
SubstitutionType | evaluate (const MultivariatePolynomial< C, O, P > &p, const std::map< Variable, SubstitutionType > &substitutions) |
Like substitute, but expects substitutions for all variables. More... | |
template<typename Coeff > | |
Coeff | evaluate (const UnivariatePolynomial< Coeff > &p, const Coeff &value) |
template<typename Coeff > | |
bool | is_root_of (const UnivariatePolynomial< Coeff > &p, const Coeff &value) |
template<typename C , typename O , typename P > | |
Factors< MultivariatePolynomial< C, O, P > > | factorization (const MultivariatePolynomial< C, O, P > &p, bool includeConstants=true) |
Try to factorize a multivariate polynomial. More... | |
template<typename C , typename O , typename P > | |
bool | is_trivial (const Factors< MultivariatePolynomial< C, O, P >> &f) |
template<typename C , typename O , typename P > | |
std::vector< MultivariatePolynomial< C, O, P > > | irreducible_factors (const MultivariatePolynomial< C, O, P > &p, bool includeConstants=true) |
Try to factorize a multivariate polynomial and return the irreducible factors (without multiplicities). More... | |
template<typename Coeff > | |
std::map< uint, UnivariatePolynomial< Coeff > > | squareFreeFactorization (const UnivariatePolynomial< Coeff > &p) |
template<typename Coeff > | |
FactorMap< Coeff > | factorization (const UnivariatePolynomial< Coeff > &p) |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | gcd (const MultivariatePolynomial< C, O, P > &a, const MultivariatePolynomial< C, O, P > &b) |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | gcd (const UnivariatePolynomial< Coeff > &a, const UnivariatePolynomial< Coeff > &b) |
Calculates the greatest common divisor of two polynomials. More... | |
template<typename C , typename O , typename P > | |
Term< C > | gcd (const MultivariatePolynomial< C, O, P > &a, const Term< C > &b) |
template<typename C , typename O , typename P > | |
Term< C > | gcd (const Term< C > &a, const MultivariatePolynomial< C, O, P > &b) |
template<typename C , typename O , typename P > | |
Monomial::Arg | gcd (const MultivariatePolynomial< C, O, P > &a, const Monomial::Arg &b) |
template<typename C , typename O , typename P > | |
Monomial::Arg | gcd (const Monomial::Arg &a, const MultivariatePolynomial< C, O, P > &b) |
Monomial::Arg | gcd (const Monomial::Arg &lhs, const Monomial::Arg &rhs) |
Calculates the least common multiple of two monomial pointers. More... | |
template<typename Coeff > | |
Term< Coeff > | gcd (const Term< Coeff > &t1, const Term< Coeff > &t2) |
Calculates the gcd of (t1, t2). More... | |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | gcd_recursive (const UnivariatePolynomial< Coeff > &a, const UnivariatePolynomial< Coeff > &b) |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | extended_gcd (const UnivariatePolynomial< Coeff > &a, const UnivariatePolynomial< Coeff > &b, UnivariatePolynomial< Coeff > &s, UnivariatePolynomial< Coeff > &t) |
Calculates the extended greatest common divisor g of two polynomials. More... | |
template<typename C , typename O , typename P > | |
std::vector< MultivariatePolynomial< C, O, P > > | groebner_basis (const std::vector< MultivariatePolynomial< C, O, P >> &polys) |
template<typename PolynomialType , typename Number , class strategy > | |
Interval< Number > | evaluate (const MultivariateHorner< PolynomialType, strategy > &mvH, const std::map< Variable, Interval< Number >> &map) |
template<typename Numeric > | |
Interval< Numeric > | evaluate (const Monomial &m, const std::map< Variable, Interval< Numeric >> &map) |
template<typename Coeff , typename Numeric , EnableIf< std::is_same< Numeric, Coeff >> = dummy> | |
Interval< Numeric > | evaluate (const Term< Coeff > &t, const std::map< Variable, Interval< Numeric >> &map) |
template<typename Coeff , typename Policy , typename Ordering , typename Numeric > | |
Interval< Numeric > | evaluate (const MultivariatePolynomial< Coeff, Policy, Ordering > &p, const std::map< Variable, Interval< Numeric >> &map) |
template<typename Numeric , typename Coeff , EnableIf< std::is_same< Numeric, Coeff >> = dummy> | |
Interval< Numeric > | evaluate (const UnivariatePolynomial< Coeff > &p, const std::map< Variable, Interval< Numeric >> &map) |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | lcm (const MultivariatePolynomial< C, O, P > &a, const MultivariatePolynomial< C, O, P > &b) |
Monomial::Arg | pow (const Monomial &m, uint exp) |
Calculates the given power of a monomial m. More... | |
Monomial::Arg | pow (const Monomial::Arg &m, uint exp) |
template<typename Coeff > | |
Term< Coeff > | pow (const Term< Coeff > &t, uint exp) |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | pow (const MultivariatePolynomial< C, O, P > &p, std::size_t exp) |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | pow_naive (const MultivariatePolynomial< C, O, P > &p, std::size_t exp) |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | pow (const UnivariatePolynomial< Coeff > &p, std::size_t exp) |
Returns a polynomial to the given power. More... | |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | primitive_euclidean (const UnivariatePolynomial< Coeff > &a, const UnivariatePolynomial< Coeff > &b) |
Computes the GCD of two univariate polynomial with coefficients from a unique factorization domain using the primitive euclidean algorithm. More... | |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | primitive_part (const UnivariatePolynomial< Coeff > &p) |
The primitive part of p is the normal part of p divided by the content of p. More... | |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | pseudo_primitive_part (const UnivariatePolynomial< Coeff > &p) |
Returns this/divisor where divisor is the numeric content of this polynomial. More... | |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | quotient (const MultivariatePolynomial< C, O, P > ÷nd, const MultivariatePolynomial< C, O, P > &divisor) |
Calculates the quotient of a polynomial division. More... | |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | remainder_helper (const UnivariatePolynomial< Coeff > ÷nd, const UnivariatePolynomial< Coeff > &divisor, const Coeff *prefactor=nullptr) |
Does the heavy lifting for the remainder computation of polynomial division. More... | |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | remainder (const UnivariatePolynomial< Coeff > ÷nd, const UnivariatePolynomial< Coeff > &divisor, const Coeff &prefactor) |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | remainder (const UnivariatePolynomial< Coeff > ÷nd, const UnivariatePolynomial< Coeff > &divisor) |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | pseudo_remainder (const UnivariatePolynomial< Coeff > ÷nd, const UnivariatePolynomial< Coeff > &divisor) |
Calculates the pseudo-remainder. More... | |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | signed_pseudo_remainder (const UnivariatePolynomial< Coeff > ÷nd, const UnivariatePolynomial< Coeff > &divisor) |
Compute the signed pseudo-remainder. More... | |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | remainder (const MultivariatePolynomial< C, O, P > ÷nd, const MultivariatePolynomial< C, O, P > &divisor) |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | pseudo_remainder (const MultivariatePolynomial< C, O, P > ÷nd, const MultivariatePolynomial< C, O, P > &divisor, Variable var) |
template<typename Coeff > | |
UnivariatePolynomial< MultivariatePolynomial< typename UnderlyingNumberType< Coeff >::type > > | switch_main_variable (const UnivariatePolynomial< Coeff > &p, Variable newVar) |
Switches the main variable using a purely syntactical restructuring. More... | |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | replace_main_variable (const UnivariatePolynomial< Coeff > &p, Variable newVar) |
Replaces the main variable in a polynomial. More... | |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | switch_variable (const MultivariatePolynomial< C, O, P > &p, Variable old_var, Variable new_var) |
template<typename Coeff > | |
std::list< UnivariatePolynomial< Coeff > > | subresultants (const UnivariatePolynomial< Coeff > &pol1, const UnivariatePolynomial< Coeff > &pol2, SubresultantStrategy strategy) |
Implements a subresultants algorithm with optimizations described in [2] . More... | |
template<typename Coeff > | |
std::vector< UnivariatePolynomial< Coeff > > | principalSubresultantsCoefficients (const UnivariatePolynomial< Coeff > &, const UnivariatePolynomial< Coeff > &, SubresultantStrategy=SubresultantStrategy::Default) |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | resultant (const UnivariatePolynomial< Coeff > &, const UnivariatePolynomial< Coeff > &, SubresultantStrategy=SubresultantStrategy::Default) |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | discriminant (const UnivariatePolynomial< Coeff > &, SubresultantStrategy=SubresultantStrategy::Default) |
template<typename Coeff > | |
Coeff | cauchyBound (const UnivariatePolynomial< Coeff > &p) |
template<typename Coeff > | |
Coeff | hirstMaceyBound (const UnivariatePolynomial< Coeff > &p) |
template<typename Coeff > | |
Coeff | lagrangeBound (const UnivariatePolynomial< Coeff > &p) |
template<typename Coeff > | |
Coeff | lagrangePositiveUpperBound (const UnivariatePolynomial< Coeff > &p) |
template<typename Coeff > | |
Coeff | lagrangePositiveLowerBound (const UnivariatePolynomial< Coeff > &p) |
Computes a lower bound on the value of the positive real roots of the given univariate polynomial. More... | |
template<typename Coeff > | |
Coeff | lagrangeNegativeUpperBound (const UnivariatePolynomial< Coeff > &p) |
Computes an upper bound on the value of the negative real roots of the given univariate polynomial. More... | |
template<typename Coefficient > | |
int | count_real_roots (const std::vector< UnivariatePolynomial< Coefficient >> &seq, const Interval< Coefficient > &i) |
Calculate the number of real roots of a polynomial within a given interval based on a sturm sequence of this polynomial. More... | |
template<typename Coefficient > | |
int | count_real_roots (const UnivariatePolynomial< Coefficient > &p, const Interval< Coefficient > &i) |
Count the number of real roots of p within the given interval using Sturm sequences. More... | |
template<typename Coeff > | |
void | eliminate_zero_root (UnivariatePolynomial< Coeff > &p) |
Reduces the given polynomial such that zero is not a root anymore. More... | |
template<typename Coeff > | |
void | eliminate_root (UnivariatePolynomial< Coeff > &p, const Coeff &root) |
Reduces the polynomial such that the given root is not a root anymore. More... | |
Monomial::Arg | separable_part (const Monomial &m) |
Calculates the separable part of this monomial. More... | |
template<typename Coefficient > | |
uint | sign_variations (const UnivariatePolynomial< Coefficient > &polynomial, const Interval< Coefficient > &interval) |
Counts the sign variations (i.e. More... | |
template<typename C , typename O , typename P > | |
std::vector< std::pair< C, MultivariatePolynomial< C, O, P > > > | sos_decomposition (const MultivariatePolynomial< C, O, P > &p, bool not_trivial=false) |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | SPolynomial (const MultivariatePolynomial< C, O, P > &p, const MultivariatePolynomial< C, O, P > &q) |
Calculates the S-Polynomial of two polynomials. More... | |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | squareFreePart (const MultivariatePolynomial< C, O, P > &polynomial) |
template<typename Coeff , EnableIf< is_subset_of_rationals_type< Coeff >> = dummy> | |
UnivariatePolynomial< Coeff > | squareFreePart (const UnivariatePolynomial< Coeff > &p) |
template<typename Coeff > | |
std::vector< UnivariatePolynomial< Coeff > > | sturm_sequence (const UnivariatePolynomial< Coeff > &p, const UnivariatePolynomial< Coeff > &q) |
Computes the sturm sequence of two polynomials. More... | |
template<typename Coeff > | |
std::vector< UnivariatePolynomial< Coeff > > | sturm_sequence (const UnivariatePolynomial< Coeff > &p) |
Computes the sturm sequence of a polynomial as defined at [3], page 333, example 22. More... | |
template<typename Coeff > | |
Coeff | substitute (const Monomial &m, const std::map< Variable, Coeff > &substitutions) |
Applies the given substitutions to a monomial. More... | |
template<typename Coeff > | |
Term< Coeff > | substitute (const Term< Coeff > &t, const std::map< Variable, Coeff > &substitutions) |
template<typename Coeff > | |
Term< Coeff > | substitute (const Term< Coeff > &t, const std::map< Variable, Term< Coeff >> &substitutions) |
template<typename C , typename O , typename P > | |
void | substitute_inplace (MultivariatePolynomial< C, O, P > &p, Variable var, const MultivariatePolynomial< C, O, P > &value) |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | substitute (const MultivariatePolynomial< C, O, P > &p, Variable var, const MultivariatePolynomial< C, O, P > &value) |
template<typename C , typename O , typename P , typename S > | |
MultivariatePolynomial< C, O, P > | substitute (const MultivariatePolynomial< C, O, P > &p, const std::map< Variable, S > &substitutions) |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | substitute (const MultivariatePolynomial< C, O, P > &p, const std::map< Variable, Term< C >> &substitutions) |
template<typename C , typename O , typename P > | |
MultivariatePolynomial< C, O, P > | substitute (const MultivariatePolynomial< C, O, P > &p, const std::map< Variable, MultivariatePolynomial< C, O, P >> &substitutions) |
template<typename Coeff > | |
void | substitute_inplace (UnivariatePolynomial< Coeff > &p, Variable var, const Coeff &value) |
template<typename Coeff > | |
UnivariatePolynomial< Coeff > | substitute (const UnivariatePolynomial< Coeff > &p, Variable var, const Coeff &value) |
template<typename Rational > | |
void | substitute_inplace (MultivariatePolynomial< Rational > &p, Variable var, const Rational &r) |
Substitutes a variable with a rational within a polynomial. More... | |
template<typename Poly , typename Rational > | |
void | substitute_inplace (UnivariatePolynomial< Poly > &p, Variable var, const Rational &r) |
template<typename C , typename O , typename P > | |
UnivariatePolynomial< C > | to_univariate_polynomial (const MultivariatePolynomial< C, O, P > &p) |
Convert a univariate polynomial that is currently (mis)represented by a 'MultivariatePolynomial' into a more appropiate 'UnivariatePolynomial' representation. More... | |
template<typename C , typename O , typename P > | |
UnivariatePolynomial< MultivariatePolynomial< C, O, P > > | to_univariate_polynomial (const MultivariatePolynomial< C, O, P > &p, Variable v) |
Convert a multivariate polynomial that is currently represented by a MultivariatePolynomial into a UnivariatePolynomial representation. More... | |
template<typename Coeff , typename Ordering , typename Policies > | |
VarInfo< MultivariatePolynomial< Coeff, Ordering, Policies > > | var_info (const MultivariatePolynomial< Coeff, Ordering, Policies > &poly, const Variable var, bool collect_coeff=false) |
template<typename Coeff , typename Ordering , typename Policies > | |
VarsInfo< MultivariatePolynomial< Coeff, Ordering, Policies > > | vars_info (const MultivariatePolynomial< Coeff, Ordering, Policies > &poly, bool collect_coeff=false) |
Monomial::Arg | pow (Variable v, std::size_t exp) |
bool | operator== (const std::pair< Variable, std::size_t > &p, Variable v) |
Compare a pair of variable and exponent with a variable. More... | |
std::ostream & | operator<< (std::ostream &os, const Monomial &rhs) |
Streaming operator for Monomial. More... | |
std::ostream & | operator<< (std::ostream &os, const Monomial::Arg &rhs) |
Streaming operator for std::shared_ptr<Monomial>. More... | |
void | variables (const Monomial &m, carlVariables &vars) |
Add the variables of the given monomial to the variables. More... | |
std::size_t | hash_value (const carl::Monomial &monomial) |
std::ostream & | operator<< (std::ostream &os, const MonomialPool &mp) |
template<typename... T> | |
Monomial::Arg | createMonomial (T &&... t) |
template<typename C , typename O , typename P > | |
bool | is_one (const MultivariatePolynomial< C, O, P > &p) |
template<typename C , typename O , typename P > | |
bool | is_zero (const MultivariatePolynomial< C, O, P > &p) |
template<typename C , typename O , typename P > | |
std::pair< MultivariatePolynomial< C, O, P >, MultivariatePolynomial< C, O, P > > | lazyDiv (const MultivariatePolynomial< C, O, P > &_polyA, const MultivariatePolynomial< C, O, P > &_polyB) |
template<typename C , typename O , typename P > | |
std::ostream & | operator<< (std::ostream &os, const MultivariatePolynomial< C, O, P > &rhs) |
Streaming operator for multivariate polynomials. More... | |
template<typename Coeff , typename Ordering , typename Policies > | |
void | variables (const MultivariatePolynomial< Coeff, Ordering, Policies > &p, carlVariables &vars) |
Add the variables of the given polynomial to the variables. More... | |
template<typename Coeff > | |
bool | is_zero (const Term< Coeff > &term) |
Checks whether a term is zero. More... | |
template<typename Coeff > | |
void | variables (const Term< Coeff > &t, carlVariables &vars) |
Add the variables of the given term to the variables. More... | |
template<typename Coeff > | |
bool | is_one (const Term< Coeff > &term) |
Checks whether a term is one. More... | |
template<typename Coeff > | |
Term< Coeff > | operator- (const Term< Coeff > &rhs) |
template<typename Coefficient > | |
bool | is_zero (const UnivariatePolynomial< Coefficient > &p) |
Checks if the polynomial is equal to zero. More... | |
template<typename Coefficient > | |
bool | is_one (const UnivariatePolynomial< Coefficient > &p) |
Checks if the polynomial is equal to one. More... | |
template<typename Coeff > | |
void | variables (const UnivariatePolynomial< Coeff > &p, carlVariables &vars) |
Add the variables of the given polynomial to the variables. More... | |
template<typename Number , typename = std::enable_if_t<is_number_type<Number>::value>> | |
const Number & | branching_point (const Number &n) |
template<typename Number , typename = std::enable_if_t<is_number_type<Number>::value>> | |
Number | sample_above (const Number &n) |
template<typename Number , typename = std::enable_if_t<is_number_type<Number>::value>> | |
Number | sample_below (const Number &n) |
template<typename Number , typename = std::enable_if_t<is_number_type<Number>::value>> | |
Number | sample_between (const Number &lower, const Number &upper) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
Number | is_root_of (const UnivariatePolynomial< Number > &p, const RAN &value) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator== (const RAN &lhs, const Number &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator!= (const RAN &lhs, const Number &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator<= (const RAN &lhs, const Number &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator>= (const RAN &lhs, const Number &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator< (const RAN &lhs, const Number &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator> (const RAN &lhs, const Number &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator== (const Number &lhs, const RAN &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator!= (const Number &lhs, const RAN &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator<= (const Number &lhs, const RAN &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator>= (const Number &lhs, const RAN &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator< (const Number &lhs, const RAN &rhs) |
template<typename Number , typename RAN , typename = std::enable_if_t<is_ran_type<RAN>::value>> | |
bool | operator> (const Number &lhs, const RAN &rhs) |
template<typename RAN , EnableIf< is_ran_type< RAN >> = dummy> | |
bool | operator== (const RAN &lhs, const RAN &rhs) |
template<typename RAN , EnableIf< is_ran_type< RAN >> = dummy> | |
bool | operator!= (const RAN &lhs, const RAN &rhs) |
template<typename RAN , EnableIf< is_ran_type< RAN >> = dummy> | |
bool | operator<= (const RAN &lhs, const RAN &rhs) |
template<typename RAN , EnableIf< is_ran_type< RAN >> = dummy> | |
bool | operator>= (const RAN &lhs, const RAN &rhs) |
template<typename RAN , EnableIf< is_ran_type< RAN >> = dummy> | |
bool | operator< (const RAN &lhs, const RAN &rhs) |
template<typename RAN , EnableIf< is_ran_type< RAN >> = dummy> | |
bool | operator> (const RAN &lhs, const RAN &rhs) |
template<typename T , std::enable_if_t< is_ran_type< T >::value, int > = 0> | |
T | convert (const T &r) |
template<typename Number > | |
std::optional< IntRepRealAlgebraicNumber< Number > > | evaluate (MultivariatePolynomial< Number > p, const Assignment< IntRepRealAlgebraicNumber< Number >> &m, bool refine_model=true) |
Evaluate the given polynomial with the given values for the variables. More... | |
template<typename Number > | |
boost::tribool | evaluate (const BasicConstraint< MultivariatePolynomial< Number >> &c, const Assignment< IntRepRealAlgebraicNumber< Number >> &m, bool refine_model=true, bool use_root_bounds=true) |
template<typename Coeff , typename Ordering , typename Policies > | |
auto | evaluate (const ContextPolynomial< Coeff, Ordering, Policies > &p, const Assignment< typename ContextPolynomial< Coeff, Ordering, Policies >::RootType > &a) |
template<typename Coeff , typename Ordering , typename Policies > | |
auto | evaluate (const BasicConstraint< ContextPolynomial< Coeff, Ordering, Policies >> &p, const Assignment< typename ContextPolynomial< Coeff, Ordering, Policies >::RootType > &a) |
template<typename Number > | |
Number | branching_point (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
Number | sample_above (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
Number | sample_below (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
Number | sample_between (const IntRepRealAlgebraicNumber< Number > &lower, const IntRepRealAlgebraicNumber< Number > &upper) |
template<typename Number > | |
Number | sample_between (const IntRepRealAlgebraicNumber< Number > &lower, const Number &upper) |
template<typename Number > | |
Number | sample_between (const Number &lower, const IntRepRealAlgebraicNumber< Number > &upper) |
template<typename Number > | |
Number | floor (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
Number | ceil (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
bool | is_zero (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
bool | is_integer (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
Number | integer_below (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
static IntRepRealAlgebraicNumber< Number > | abs (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
std::size_t | bitsize (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
Sign | sgn (const IntRepRealAlgebraicNumber< Number > &n) |
template<typename Number > | |
Sign | sgn (const IntRepRealAlgebraicNumber< Number > &n, const UnivariatePolynomial< Number > &p) |
template<typename Number > | |
bool | contained_in (const IntRepRealAlgebraicNumber< Number > &n, const Interval< Number > &i) |
template<typename Number > | |
bool | compare (const IntRepRealAlgebraicNumber< Number > &lhs, const IntRepRealAlgebraicNumber< Number > &rhs, const Relation relation) |
template<typename Number > | |
bool | compare (const IntRepRealAlgebraicNumber< Number > &lhs, const Number &rhs, const Relation relation) |
template<typename Num > | |
std::ostream & | operator<< (std::ostream &os, const IntRepRealAlgebraicNumber< Num > &ran) |
template<typename Coeff , typename Number = typename UnderlyingNumberType<Coeff>::type, EnableIf< std::is_same< Coeff, Number >> = dummy> | |
RealRootsResult< IntRepRealAlgebraicNumber< Number > > | real_roots (const UnivariatePolynomial< Coeff > &polynomial, const Interval< Number > &interval=Interval< Number >::unbounded_interval()) |
Find all real roots of a univariate 'polynomial' with numeric coefficients within a given 'interval'. More... | |
template<typename Coeff , typename Number > | |
RealRootsResult< IntRepRealAlgebraicNumber< Number > > | real_roots (const UnivariatePolynomial< Coeff > &poly, const Assignment< IntRepRealAlgebraicNumber< Number >> &varToRANMap, const Interval< Number > &interval=Interval< Number >::unbounded_interval()) |
Replace all variables except one of the multivariate polynomial 'p' by numbers as given in the mapping 'm', which creates a univariate polynomial, and return all roots of that created polynomial. More... | |
template<typename Coeff , typename Ordering , typename Policies > | |
auto | real_roots (const ContextPolynomial< Coeff, Ordering, Policies > &p, const Assignment< typename ContextPolynomial< Coeff, Ordering, Policies >::RootType > &a) |
template<typename Number > | |
Number | branching_point (const RealAlgebraicNumberThom< Number > &n) |
template<typename Number > | |
Number | evaluate (const MultivariatePolynomial< Number > &p, std::map< Variable, RealAlgebraicNumberThom< Number >> &m) |
template<typename Number , typename Poly > | |
bool | evaluate (const BasicConstraint< Poly > &c, std::map< Variable, RealAlgebraicNumberThom< Number >> &m) |
template<typename Number > | |
RealAlgebraicNumberThom< Number > | abs (const RealAlgebraicNumberThom< Number > &n) |
template<typename Number > | |
RealAlgebraicNumberThom< Number > | sample_above (const RealAlgebraicNumberThom< Number > &n) |
template<typename Number > | |
RealAlgebraicNumberThom< Number > | sample_below (const RealAlgebraicNumberThom< Number > &n) |
template<typename Number > | |
RealAlgebraicNumberThom< Number > | sample_between (const RealAlgebraicNumberThom< Number > &lower, const RealAlgebraicNumberThom< Number > &upper) |
template<typename Number > | |
Number | sample_between (const RealAlgebraicNumberThom< Number > &lower, const Number &upper) |
template<typename Number > | |
Number | sample_between (const Number &lower, const RealAlgebraicNumberThom< Number > &upper) |
template<typename Number > | |
Number | floor (const RealAlgebraicNumberThom< Number > &n) |
template<typename Number > | |
Number | ceil (const RealAlgebraicNumberThom< Number > &n) |
template<typename Number > | |
bool | operator== (const RealAlgebraicNumberThom< Number > &lhs, const RealAlgebraicNumberThom< Number > &rhs) |
template<typename Number > | |
bool | operator== (const RealAlgebraicNumberThom< Number > &lhs, const Number &rhs) |
template<typename Number > | |
bool | operator== (const Number &lhs, const RealAlgebraicNumberThom< Number > &rhs) |
template<typename Number > | |
bool | operator< (const RealAlgebraicNumberThom< Number > &lhs, const RealAlgebraicNumberThom< Number > &rhs) |
template<typename Number > | |
bool | operator< (const RealAlgebraicNumberThom< Number > &lhs, const Number &rhs) |
template<typename Number > | |
bool | operator< (const Number &lhs, const RealAlgebraicNumberThom< Number > &rhs) |
template<typename Num > | |
std::ostream & | operator<< (std::ostream &os, const RealAlgebraicNumberThom< Num > &rhs) |
template<typename N > | |
std::ostream & | operator<< (std::ostream &os, const SignDetermination< N > &rhs) |
template<typename Coeff > | |
std::vector< Coeff > | newtonSums (const std::vector< Coeff > &newtonSums) |
template<typename Coeff > | |
void | printMatrix (const CoeffMatrix< Coeff > &m) |
template<typename Coeff > | |
std::vector< Coeff > | charPol (const CoeffMatrix< Coeff > &m) |
template<typename C > | |
std::ostream & | operator<< (std::ostream &o, const MultiplicationTable< C > &table) |
template<typename Number > | |
int | multivariateTarskiQuery (const MultivariatePolynomial< Number > &Q, const MultiplicationTable< Number > &table) |
template<typename Number > | |
Sign | signAtMinusInf (const UnivariatePolynomial< Number > &p) |
template<typename Number > | |
Sign | signAtPlusInf (const UnivariatePolynomial< Number > &p) |
template<typename Number > | |
int | univariateTarskiQuery (const UnivariatePolynomial< Number > &p, const UnivariatePolynomial< Number > &q, const UnivariatePolynomial< Number > &der_q) |
template<typename Number > | |
int | univariateTarskiQuery (const UnivariatePolynomial< Number > &p, const UnivariatePolynomial< Number > &q) |
template<typename N > | |
bool | operator< (const ThomEncoding< N > &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator<= (const ThomEncoding< N > &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator> (const ThomEncoding< N > &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator>= (const ThomEncoding< N > &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator== (const ThomEncoding< N > &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator!= (const ThomEncoding< N > &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator< (const ThomEncoding< N > &lhs, const N &rhs) |
template<typename N > | |
bool | operator<= (const ThomEncoding< N > &lhs, const N &rhs) |
template<typename N > | |
bool | operator> (const ThomEncoding< N > &lhs, const N &rhs) |
template<typename N > | |
bool | operator>= (const ThomEncoding< N > &lhs, const N &rhs) |
template<typename N > | |
bool | operator== (const ThomEncoding< N > &lhs, const N &rhs) |
template<typename N > | |
bool | operator!= (const ThomEncoding< N > &lhs, const N &rhs) |
template<typename N > | |
bool | operator< (const N &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator<= (const N &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator> (const N &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator>= (const N &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator== (const N &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
bool | operator!= (const N &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
ThomEncoding< N > | operator+ (const N &lhs, const ThomEncoding< N > &rhs) |
template<typename N > | |
std::ostream & | operator<< (std::ostream &os, const ThomEncoding< N > &rhs) |
template<typename Number > | |
RealAlgebraicNumber< Number > | evaluateTE (const MultivariatePolynomial< Number > &p, std::map< Variable, RealAlgebraicNumber< Number >> &m) |
template<typename Number > | |
std::list< ThomEncoding< Number > > | realRootsThom (const MultivariatePolynomial< Number > &p, Variable::Arg mainVar, std::shared_ptr< ThomEncoding< Number >> point_ptr, const Interval< Number > &interval=Interval< Number >::unbounded_interval()) |
template<typename Number > | |
std::list< ThomEncoding< Number > > | realRootsThom (const MultivariatePolynomial< Number > &p, Variable::Arg mainVar, const std::map< Variable, ThomEncoding< Number >> &m={}, const Interval< Number > &interval=Interval< Number >::unbounded_interval()) |
template<typename Coeff , typename Number > | |
std::list< RealAlgebraicNumber< Number > > | realRootsThom (const UnivariatePolynomial< Coeff > &p, const std::map< Variable, RealAlgebraicNumber< Number >> &m, const Interval< Number > &interval) |
template<typename Number > | |
std::list< MultivariatePolynomial< Number > > | der (const MultivariatePolynomial< Number > &p, Variable::Arg var, uint from, uint upto) |
template<typename Poly > | |
std::pair< typename SqrtEx< Poly >::Rational, bool > | evaluate (const SqrtEx< Poly > &sqrt_ex, const std::map< Variable, typename SqrtEx< Poly >::Rational > &eval_map, int rounding) |
Evaluates the square root expression. More... | |
template<typename Poly > | |
void | variables (const SqrtEx< Poly > &ex, carlVariables &vars) |
template<typename Poly > | |
SqrtEx< Poly > | substitute (const SqrtEx< Poly > &sqrt_ex, const std::map< Variable, typename SqrtEx< Poly >::Rational > &eval_map) |
template<typename Poly > | |
SqrtEx< Poly > | substitute (const Poly &_substituteIn, const carl::Variable _varToSubstitute, const SqrtEx< Poly > &_substituteBy) |
Substitutes a variable in an expression by a square root expression, which results in a square root expression. More... | |
std::ostream & | operator<< (std::ostream &os, CMakeOptionPrinter cmop) |
constexpr CMakeOptionPrinter | CMakeOptions (bool advanced=false) noexcept |
BitVector | operator| (const BitVector &lhs, const BitVector &rhs) |
bool | operator== (const BitVector &lhs, const BitVector &rhs) |
bool | operator== (const BitVector::forward_iterator &fi1, const BitVector::forward_iterator &fi2) |
std::ostream & | operator<< (std::ostream &os, const BitVector &bv) |
template<typename TT > | |
std::ostream & | operator<< (std::ostream &os, const tree< TT > &tree) |
template<class E , bool FI> | |
std::ostream & | operator<< (std::ostream &out, const CompactTree< E, FI > &tree) |
std::string | demangle (const char *name) |
void | printStacktrace () |
Uses GDB to print a stack trace. More... | |
std::string | callingFunction () |
static void | handle_signal (int signal) |
Actual signal handler. More... | |
static bool | install_signal_handler () noexcept |
Installs the signal handler. More... | |
template<typename T > | |
std::string | typeString () |
std::ostream & | operator<< (std::ostream &os, const Timer &t) |
Streaming operator for a Timer. More... | |
template<typename T , class I > | |
bool | operator== (const TypeInfoPair< T, I > &_tipA, const TypeInfoPair< T, I > &_tipB) |
template<typename T > | |
bool | returnFalse (const T &, const T &) |
template<typename T > | |
void | doNothing (const T &, const T &) |
template<class... Ts> | |
overloaded (Ts...) -> overloaded< Ts... > | |
has_method_struct (normalize) has_method_struct(is_negative) has_method_struct(is_positive) has_function_overload(is_one) has_function_overload(is_zero) template< template< typename... > class Template | |
template<typename Enum > | |
constexpr Enum | invalid_enum_value () |
Returns an enum value that is (most probably) not a valid enum value. More... | |
template<typename Enum > | |
constexpr auto | underlying_enum_value (Enum e) |
Casts an enum value to a value of the underlying number type. More... | |
void | hash_combine (std::size_t &seed, std::size_t value) |
Add a value to the given hash seed. More... | |
template<typename T > | |
void | hash_add (std::size_t &seed, const T &value) |
Add hash of the given value to the hash seed. More... | |
template<> | |
void | hash_add (std::size_t &seed, const std::size_t &value) |
Add hash of the given value to the hash seed. More... | |
template<typename T1 , typename T2 > | |
void | hash_add (std::size_t &seed, const std::pair< T1, T2 > &p) |
Add hash of both elements of a std::pair to the seed. More... | |
template<typename T > | |
void | hash_add (std::size_t &seed, const std::vector< T > &v) |
Add hash of all elements of a std::vector to the seed. More... | |
template<typename T > | |
void | hash_add (std::size_t &seed, const std::set< T > &s) |
template<typename First , typename... Tail> | |
void | hash_add (std::size_t &seed, const First &value, Tail &&... tail) |
Variadic version of hash_add to add an arbitrary number of values to the seed. More... | |
template<typename... Args> | |
std::size_t | hash_all (Args &&... args) |
Hashes an arbitrary number of values. More... | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &os, const std::forward_list< T > &l) |
Output a std::forward_list with arbitrary content. More... | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &os, const std::initializer_list< T > &l) |
Output a std::initializer_list with arbitrary content. More... | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &os, const std::list< T > &l) |
Output a std::list with arbitrary content. More... | |
template<typename Key , typename Value , typename Comparator > | |
std::ostream & | operator<< (std::ostream &os, const std::map< Key, Value, Comparator > &m) |
Output a std::map with arbitrary content. More... | |
template<typename Key , typename Value , typename Comparator > | |
std::ostream & | operator<< (std::ostream &os, const std::multimap< Key, Value, Comparator > &m) |
Output a std::multimap with arbitrary content. More... | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &os, const std::optional< T > &o) |
Output a std::optional with arbitrary content. More... | |
template<typename U , typename V > | |
std::ostream & | operator<< (std::ostream &os, const std::pair< U, V > &p) |
Output a std::pair with arbitrary content. More... | |
template<typename T , typename C > | |
std::ostream & | operator<< (std::ostream &os, const std::set< T, C > &s) |
Output a std::set with arbitrary content. More... | |
template<typename... T> | |
std::ostream & | operator<< (std::ostream &os, const std::tuple< T... > &t) |
Output a std::tuple with arbitrary content. More... | |
template<typename Key , typename Value , typename H , typename E , typename A > | |
std::ostream & | operator<< (std::ostream &os, const std::unordered_map< Key, Value, H, E, A > &m) |
Output a std::unordered_map with arbitrary content. More... | |
template<typename T , typename H , typename K , typename A > | |
std::ostream & | operator<< (std::ostream &os, const std::unordered_set< T, H, K, A > &s) |
Output a std::unordered_set with arbitrary content. More... | |
template<typename T , typename... Tail> | |
std::ostream & | operator<< (std::ostream &os, const std::variant< T, Tail... > &v) |
Output a std::variant with arbitrary content. More... | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &os, const std::vector< T > &v) |
Output a std::vector with arbitrary content. More... | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &os, const std::deque< T > &v) |
Output a std::deque with arbitrary content. More... | |
template<typename T > | |
auto | stream_joined (const std::string &glue, const T &v) |
Allows to easily output some container with all elements separated by some string. More... | |
template<typename T , typename F > | |
auto | stream_joined (const std::string &glue, const T &v, F &&f) |
Allows to easily output some container with all elements separated by some string. More... | |
template<typename T , typename C > | |
std::ostream & | operator<< (std::ostream &os, const boost::container::flat_set< T, C > &s) |
Output a boost::container::flat_set with arbitrary content. More... | |
template<class Key , class T , class Compare , class AllocatorOrContainer > | |
std::ostream & | operator<< (std::ostream &os, const boost::container::flat_map< Key, T, Compare, AllocatorOrContainer > &m) |
Output a boost::container::flat_map with arbitrary content. More... | |
template<typename Tuple1 , typename Tuple2 > | |
auto | tuple_cat (Tuple1 &&t1, Tuple2 &&t2) |
template<typename Tuple > | |
auto | tuple_tail (Tuple &&t) |
Returns a new tuple containing everything but the first element. More... | |
template<typename F , typename Tuple > | |
auto | tuple_apply (F &&f, Tuple &&t) |
Invokes a callable object f on a tuple of arguments. More... | |
template<typename F , typename Tuple > | |
auto | tuple_foreach (F &&f, Tuple &&t) |
Invokes a callable object f on every element of a tuple and returns a tuple containing the results. More... | |
template<typename Tuple , typename T , typename F > | |
T | tuple_accumulate (Tuple &&t, T &&init, F &&f) |
Implements a functional fold (similar to std::accumulate ) for std::tuple . More... | |
template<typename T , typename Variant > | |
bool | variant_is_type (const Variant &variant) noexcept |
Checks whether a variant contains a value of a fiven type. More... | |
template<typename Target , typename... Args> | |
Target | variant_extend (const boost::variant< Args... > &variant) |
template<typename... T> | |
std::size_t | variant_hash (const boost::variant< T... > &value) |
template<typename Coeff , typename Subst > | |
Subst | evaluate (const FactorizedPolynomial< Coeff > &p, const std::map< Variable, Subst > &substitutions) |
Like substitute, but expects substitutions for all variables. More... | |
template<typename P , typename Numeric > | |
Interval< Numeric > | evaluate (const FactorizedPolynomial< P > &p, const std::map< Variable, Interval< Numeric >> &map) |
template<typename P > | |
bool | is_one (const FactorizedPolynomial< P > &fp) |
template<typename P > | |
bool | is_zero (const FactorizedPolynomial< P > &fp) |
template<typename P > | |
P | computePolynomial (const FactorizedPolynomial< P > &_fpoly) |
Obtains the polynomial (representation) of this factorized polynomial. More... | |
template<typename P > | |
std::ostream & | operator<< (std::ostream &_out, const FactorizedPolynomial< P > &_fpoly) |
Prints the factorization representation of the given factorized polynomial on the given output stream. More... | |
template<typename P > | |
std::string | factorizationToString (const Factorization< P > &_factorization, bool _infix=true, bool _friendlyVarNames=true) |
template<typename P > | |
std::ostream & | operator<< (std::ostream &_out, const Factorization< P > &_factorization) |
template<typename P > | |
bool | factorizationsEqual (const Factorization< P > &_factorizationA, const Factorization< P > &_factorizationB) |
template<typename P > | |
P | computePolynomial (const PolynomialFactorizationPair< P > &_pfPair) |
Compute the polynomial from the given polynomial-factorization pair. More... | |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator+ (const RationalFunction< Pol, AS > &lhs, const RationalFunction< Pol, AS > &rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator+ (const RationalFunction< Pol, AS > &lhs, const Pol &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator+ (const RationalFunction< Pol, AS > &lhs, const Term< typename Pol::CoeffType > &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator+ (const RationalFunction< Pol, AS > &lhs, const Monomial::Arg &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator+ (const RationalFunction< Pol, AS > &lhs, Variable rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator+ (const RationalFunction< Pol, AS > &lhs, const typename Pol::CoeffType &rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator- (const RationalFunction< Pol, AS > &lhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator- (const RationalFunction< Pol, AS > &lhs, const RationalFunction< Pol, AS > &rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator- (const RationalFunction< Pol, AS > &lhs, const Pol &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator- (const RationalFunction< Pol, AS > &lhs, const Term< typename Pol::CoeffType > &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator- (const RationalFunction< Pol, AS > &lhs, const Monomial::Arg &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator- (const RationalFunction< Pol, AS > &lhs, Variable rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator- (const RationalFunction< Pol, AS > &lhs, const typename Pol::CoeffType &rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator* (const RationalFunction< Pol, AS > &lhs, const RationalFunction< Pol, AS > &rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator* (const RationalFunction< Pol, AS > &lhs, const Pol &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator* (const RationalFunction< Pol, AS > &lhs, const Term< typename Pol::CoeffType > &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator* (const RationalFunction< Pol, AS > &lhs, const Monomial::Arg &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator* (const RationalFunction< Pol, AS > &lhs, Variable rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator* (const RationalFunction< Pol, AS > &lhs, const typename Pol::CoeffType &rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator* (const typename Pol::CoeffType &lhs, const RationalFunction< Pol, AS > &rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator* (const RationalFunction< Pol, AS > &lhs, carl::sint rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator* (carl::sint lhs, const RationalFunction< Pol, AS > &rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator/ (const RationalFunction< Pol, AS > &lhs, const RationalFunction< Pol, AS > &rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator/ (const RationalFunction< Pol, AS > &lhs, const Pol &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator/ (const RationalFunction< Pol, AS > &lhs, const Term< typename Pol::CoeffType > &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator/ (const RationalFunction< Pol, AS > &lhs, const Monomial::Arg &rhs) |
template<typename Pol , bool AS, DisableIf< needs_cache_type< Pol >> = dummy> | |
RationalFunction< Pol, AS > | operator/ (const RationalFunction< Pol, AS > &lhs, Variable rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator/ (const RationalFunction< Pol, AS > &lhs, const typename Pol::CoeffType &rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | operator/ (const RationalFunction< Pol, AS > &lhs, unsigned long rhs) |
template<typename Pol , bool AS> | |
RationalFunction< Pol, AS > | pow (unsigned exp, const RationalFunction< Pol, AS > &rf) |
template<typename Pol , bool AS> | |
bool | operator!= (const RationalFunction< Pol, AS > &lhs, const RationalFunction< Pol, AS > &rhs) |
template<typename P > | |
FactorizedPolynomial< P > | substitute (const FactorizedPolynomial< P > &p, Variable var, const FactorizedPolynomial< P > &value) |
Replace the given variable by the given value. More... | |
template<typename P > | |
FactorizedPolynomial< P > | substitute (const FactorizedPolynomial< P > &p, const std::map< Variable, FactorizedPolynomial< P >> &substitutions) |
Replace all variables by a value given in their map. More... | |
template<typename P > | |
FactorizedPolynomial< P > | substitute (const FactorizedPolynomial< P > &p, const std::map< Variable, FactorizedPolynomial< P >> &substitutions, const std::map< Variable, P > &substitutionsAsP) |
Replace all variables by a value given in their map. More... | |
template<typename P , typename Subs > | |
FactorizedPolynomial< P > | substitute (const FactorizedPolynomial< P > &p, const std::map< Variable, Subs > &substitutions) |
Replace all variables by a value given in their map. More... | |
template<typename P > | |
bool | operator== (const Constraint< P > &lhs, const Constraint< P > &rhs) |
template<typename P > | |
bool | operator!= (const Constraint< P > &lhs, const Constraint< P > &rhs) |
template<typename P > | |
bool | operator< (const Constraint< P > &lhs, const Constraint< P > &rhs) |
template<typename P > | |
bool | operator<= (const Constraint< P > &lhs, const Constraint< P > &rhs) |
template<typename P > | |
bool | operator> (const Constraint< P > &lhs, const Constraint< P > &rhs) |
template<typename P > | |
bool | operator>= (const Constraint< P > &lhs, const Constraint< P > &rhs) |
template<typename Poly > | |
std::ostream & | operator<< (std::ostream &os, const Constraint< Poly > &c) |
Prints the given constraint on the given stream. More... | |
template<typename Pol > | |
void | variables (const Constraint< Pol > &c, carlVariables &vars) |
template<typename Pol > | |
std::optional< std::pair< Variable, Pol > > | get_substitution (const Constraint< Pol > &c, bool _negated=false, Variable _exclude=carl::Variable::NO_VARIABLE) |
template<typename Pol > | |
auto | get_assignment (const Constraint< Pol > &c) |
template<typename Pol > | |
auto | compare (const Constraint< Pol > &c1, const Constraint< Pol > &c2) |
template<typename Pol > | |
auto | satisfied_by (const Constraint< Pol > &c, const Assignment< typename Pol::NumberType > &a) |
template<typename Pol > | |
bool | is_bound (const Constraint< Pol > &constr, bool negated=false) |
template<typename Pol > | |
bool | is_lower_bound (const Constraint< Pol > &constr) |
template<typename Pol > | |
bool | is_upper_bound (const Constraint< Pol > &constr) |
std::string | toString (BVCompareRelation _r) |
std::ostream & | operator<< (std::ostream &_os, const BVCompareRelation &_r) |
std::size_t | toId (const BVCompareRelation _relation) |
BVCompareRelation | inverse (BVCompareRelation _c) |
bool | relationIsStrict (BVCompareRelation _r) |
bool | relationIsSigned (BVCompareRelation _r) |
bool | operator== (const BVConstraint &lhs, const BVConstraint &rhs) |
bool | operator< (const BVConstraint &lhs, const BVConstraint &rhs) |
std::ostream & | operator<< (std::ostream &os, const BVConstraint &c) |
bool | operator== (const BVTerm &lhs, const BVTerm &rhs) |
bool | operator< (const BVTerm &lhs, const BVTerm &rhs) |
std::ostream & | operator<< (std::ostream &os, const BVTerm &term) |
bool | operator== (const BVTermContent &lhs, const BVTermContent &rhs) |
bool | operator< (const BVTermContent &lhs, const BVTermContent &rhs) |
std::ostream & | operator<< (std::ostream &os, const BVTermContent &term) |
The output operator of a term. More... | |
auto | typeId (BVTermType type) |
std::ostream & | operator<< (std::ostream &os, BVTermType type) |
bool | typeIsUnary (BVTermType type) |
bool | typeIsBinary (BVTermType type) |
BVValue | operator+ (const BVValue &lhs, const BVValue &rhs) |
BVValue | operator* (const BVValue &lhs, const BVValue &rhs) |
bool | operator== (const BVValue &lhs, const BVValue &rhs) |
bool | operator< (const BVValue &lhs, const BVValue &rhs) |
BVValue | operator~ (const BVValue &val) |
BVValue | operator- (const BVValue &val) |
BVValue | operator- (const BVValue &lhs, const BVValue &rhs) |
BVValue | operator% (const BVValue &lhs, const BVValue &rhs) |
BVValue | operator/ (const BVValue &lhs, const BVValue &rhs) |
BVValue | operator& (const BVValue &lhs, const BVValue &rhs) |
BVValue | operator| (const BVValue &lhs, const BVValue &rhs) |
BVValue | operator^ (const BVValue &lhs, const BVValue &rhs) |
BVValue | operator<< (const BVValue &lhs, const BVValue &rhs) |
BVValue | operator>> (const BVValue &lhs, const BVValue &rhs) |
std::ostream & | operator<< (std::ostream &os, const BVValue &val) |
bool | operator== (const BVVariable &lhs, const BVVariable &rhs) |
bool | operator== (const BVVariable &lhs, const Variable &rhs) |
bool | operator== (const Variable &lhs, const BVVariable &rhs) |
bool | operator< (const BVVariable &lhs, const BVVariable &rhs) |
bool | operator< (const BVVariable &lhs, const Variable &rhs) |
bool | operator< (const Variable &lhs, const BVVariable &rhs) |
bool | operator<= (const Condition &lhs, const Condition &rhs) |
Check whether the bits of one condition are always set if the corresponding bit of another condition is set. More... | |
template<typename P > | |
std::ostream & | operator<< (std::ostream &os, const Formula< P > &f) |
The output operator of a formula. More... | |
std::string | formulaTypeToString (FormulaType _type) |
std::ostream & | operator<< (std::ostream &os, FormulaType t) |
template<typename Pol > | |
std::ostream & | operator<< (std::ostream &os, const FormulaContent< Pol > &f) |
The output operator of a formula. More... | |
template<typename Pol > | |
std::ostream & | operator<< (std::ostream &os, const FormulaContent< Pol > *fc) |
template<typename Pol > | |
std::size_t | hash_value (const carl::FormulaContent< Pol > &content) |
template<typename Poly > | |
Formula< Poly > | to_cnf (const Formula< Poly > &f, bool keep_constraints=true, bool simplify_combinations=false, bool tseitin_equivalence=true) |
Converts the given formula to CNF. More... | |
template<typename Pol > | |
size_t | complexity (const Formula< Pol > &f) |
template<typename Pol > | |
Formula< Pol > | addConstraintBound (ConstraintBounds< Pol > &_constraintBounds, const Formula< Pol > &_constraint, bool _inConjunction) |
Adds the bound to the bounds of the polynomial specified by this constraint. More... | |
template<typename Pol > | |
bool | swapConstraintBounds (ConstraintBounds< Pol > &_constraintBounds, Formulas< Pol > &_intoFormulas, bool _inConjunction) |
Stores for every polynomial for which we determined bounds for given constraints a minimal set of constraints representing these bounds into the given set of sub-formulas of a conjunction (_inConjunction == true) or disjunction (_inConjunction == false) to construct. More... | |
template<typename Pol > | |
Formula< Pol > | resolve_negation (const Formula< Pol > &f, bool _keepConstraint=true, bool resolve_varcomp=false) |
Resolves the outermost negation of this formula. More... | |
template<typename Poly > | |
Formula< Poly > | to_nnf (const Formula< Poly > &formula) |
std::ostream & | operator<< (std::ostream &os, const Quantifier &type) |
template<typename Poly > | |
Formula< Poly > | to_pnf (const Formula< Poly > &f, QuantifierPrefix &prefix, boost::container::flat_set< Variable > &used_vars, bool negated=false) |
template<typename Poly > | |
void | free_variables (const Formula< Poly > &f, boost::container::flat_set< Variable > ¤t_quantified_vars, boost::container::flat_set< Variable > &free_vars) |
template<typename Poly > | |
auto | free_variables (const Formula< Poly > &f) |
template<typename Poly > | |
std::pair< QuantifierPrefix, Formula< Poly > > | to_pnf (const Formula< Poly > &f) |
Transforms this formula to its equivalent in prenex normal form. More... | |
template<typename Poly > | |
Formula< Poly > | to_formula (const QuantifierPrefix &prefix, const Formula< Poly > &matrix) |
template<typename Pol , typename Source , typename Target > | |
Formula< Pol > | substitute (const Formula< Pol > &formula, const Source &source, const Target &target) |
template<typename Pol > | |
Formula< Pol > | substitute (const Formula< Pol > &formula, const std::map< Formula< Pol >, Formula< Pol >> &replacements) |
template<typename Pol > | |
Formula< Pol > | substitute (const Formula< Pol > &formula, const std::map< Variable, typename Formula< Pol >::PolynomialType > &replacements) |
template<typename Pol > | |
Formula< Pol > | substitute (const Formula< Pol > &formula, const std::map< BVVariable, BVTerm > &replacements) |
template<typename Pol > | |
Formula< Pol > | substitute (const Formula< Pol > &formula, const std::map< UVariable, UFInstance > &replacements) |
template<typename Pol > | |
void | variables (const Formula< Pol > &f, carlVariables &vars) |
template<typename Pol > | |
void | uninterpreted_functions (const Formula< Pol > &f, std::set< UninterpretedFunction > &ufs) |
template<typename Pol > | |
void | uninterpreted_variables (const Formula< Pol > &f, std::set< UVariable > &uvs) |
template<typename Pol > | |
void | bitvector_variables (const Formula< Pol > &f, std::set< BVVariable > &bvvs) |
template<typename Pol > | |
void | arithmetic_constraints (const Formula< Pol > &f, std::vector< Constraint< Pol >> &constraints) |
Collects all constraint occurring in this formula. More... | |
template<typename Pol > | |
void | arithmetic_constraints (const Formula< Pol > &f, std::vector< Formula< Pol >> &constraints) |
Collects all constraint occurring in this formula. More... | |
template<typename Pol , typename Visitor > | |
void | visit (const Formula< Pol > &formula, Visitor func) |
Recursively calls func on every subformula. More... | |
template<typename Pol , typename Visitor > | |
Formula< Pol > | visit_result (const Formula< Pol > &formula, Visitor func) |
Recursively calls func on every subformula and return a new formula. More... | |
std::ostream & | operator<< (std::ostream &os, const Logic &l) |
template<typename Rational , typename Poly > | |
bool | getRationalAssignmentsFromModel (const Model< Rational, Poly > &_model, std::map< Variable, Rational > &_rationalAssigns) |
Obtains all assignments which can be transformed to rationals and stores them in the passed map. More... | |
template<typename Rational , typename Poly > | |
unsigned | satisfies (const Model< Rational, Poly > &_assignment, const Formula< Poly > &_formula) |
template<typename Rational , typename Poly > | |
bool | isPartOf (const std::map< Variable, Rational > &_assignment, const Model< Rational, Poly > &_model) |
template<typename Rational , typename Poly > | |
unsigned | satisfies (const Model< Rational, Poly > &_model, const std::map< Variable, Rational > &_assignment, const std::map< BVVariable, BVTerm > &bvAssigns, const Formula< Poly > &_formula) |
template<typename Rational , typename Poly > | |
void | getDefaultModel (Model< Rational, Poly > &_defaultModel, const UEquality &_constraint, bool _overwrite=true, size_t _seed=0) |
template<typename Rational , typename Poly > | |
void | getDefaultModel (Model< Rational, Poly > &_defaultModel, const BVTerm &_constraint, bool _overwrite=true, size_t _seed=0) |
template<typename Rational , typename Poly > | |
void | getDefaultModel (Model< Rational, Poly > &_defaultModel, const Constraint< Poly > &_constraint, bool _overwrite=true, size_t _seed=0) |
template<typename Rational , typename Poly > | |
void | getDefaultModel (Model< Rational, Poly > &_defaultModel, const Formula< Poly > &_formula, bool _overwrite=true, size_t _seed=0) |
template<typename Rational , typename Poly > | |
Formula< Poly > | representingFormula (const ModelVariable &mv, const Model< Rational, Poly > &model) |
template<typename Rational , typename Poly > | |
std::optional< Assignment< typename Poly::RootType > > | get_ran_assignment (const carlVariables &vars, const Model< Rational, Poly > &model) |
template<typename Rational , typename Poly > | |
Assignment< typename Poly::RootType > | get_ran_assignment (const Model< Rational, Poly > &model) |
template<typename T , typename Rational , typename Poly > | |
T | substitute (const T &t, const Model< Rational, Poly > &m) |
Substitutes a model into an expression t. More... | |
template<typename T , typename Rational , typename Poly > | |
ModelValue< Rational, Poly > | evaluate (const T &t, const Model< Rational, Poly > &m) |
Evaluates a given expression t over a model. More... | |
template<typename T , typename Rational , typename Poly > | |
unsigned | satisfied_by (const T &t, const Model< Rational, Poly > &m) |
template<typename Rational , typename Poly > | |
void | substitute_inplace (BVTerm &bvt, const Model< Rational, Poly > &m) |
Substitutes all variables from a model within a bitvector term. More... | |
template<typename Rational , typename Poly > | |
void | substitute_inplace (BVConstraint &bvc, const Model< Rational, Poly > &m) |
Substitutes all variables from a model within a bitvector constraint. More... | |
template<typename Rational , typename Poly > | |
void | evaluate_inplace (ModelValue< Rational, Poly > &res, BVTerm &bvt, const Model< Rational, Poly > &m) |
Evaluates a bitvector term to a ModelValue over a Model. More... | |
template<typename Rational , typename Poly > | |
void | evaluate_inplace (ModelValue< Rational, Poly > &res, BVConstraint &bvc, const Model< Rational, Poly > &m) |
Evaluates a bitvector constraint to a ModelValue over a Model. More... | |
template<typename Rational , typename Poly > | |
void | substitute_inplace (Constraint< Poly > &c, const Model< Rational, Poly > &m) |
Substitutes all variables from a model within a constraint. More... | |
template<typename Rational , typename Poly > | |
void | evaluate_inplace (ModelValue< Rational, Poly > &res, Constraint< Poly > &c, const Model< Rational, Poly > &m) |
Evaluates a constraint to a ModelValue over a Model. More... | |
template<typename Rational , typename Poly > | |
void | substitute_inplace (Formula< Poly > &f, const Model< Rational, Poly > &m) |
Substitutes all variables from a model within a formula. More... | |
template<typename Rational , typename Poly > | |
void | evaluate_inplace (ModelValue< Rational, Poly > &res, Formula< Poly > &f, const Model< Rational, Poly > &m) |
Evaluates a formula to a ModelValue over a Model. More... | |
template<typename Rational , typename Poly > | |
void | substitute_inplace (MultivariateRoot< Poly > &mvr, const Model< Rational, Poly > &m) |
Substitutes all variables from a model within a MultivariateRoot. More... | |
template<typename Rational , typename Poly > | |
void | evaluate_inplace (ModelValue< Rational, Poly > &res, MultivariateRoot< Poly > &mvr, const Model< Rational, Poly > &m) |
Evaluates a MultivariateRoot to a ModelValue over a Model. More... | |
template<typename Rational , typename Poly , typename ModelPoly > | |
void | substitute_inplace (Poly &p, const Model< Rational, ModelPoly > &m) |
Substitutes all variables from a model within a polynomial. More... | |
template<typename Rational , typename Poly > | |
void | evaluate_inplace (ModelValue< Rational, Poly > &res, Poly &p, const Model< Rational, Poly > &m) |
Evaluates a polynomial to a ModelValue over a Model. More... | |
template<typename Rational , typename Poly > | |
void | evaluate_inplace (ModelValue< Rational, Poly > &res, const UVariable &uv, const Model< Rational, Poly > &m) |
Evaluates a uninterpreted variable to a ModelValue over a Model. More... | |
template<typename Rational , typename Poly > | |
void | evaluate_inplace (ModelValue< Rational, Poly > &res, const UFInstance &ufi, const Model< Rational, Poly > &m) |
Evaluates a uninterpreted function instance to a ModelValue over a Model. More... | |
template<typename Rational , typename Poly > | |
void | evaluate_inplace (ModelValue< Rational, Poly > &res, const UEquality &ue, const Model< Rational, Poly > &m) |
Evaluates a uninterpreted variable to a ModelValue over a Model. More... | |
template<typename Rational , typename Poly > | |
std::ostream & | operator<< (std::ostream &os, const Model< Rational, Poly > &model) |
template<typename Rational , typename Poly > | |
std::ostream & | operator<< (std::ostream &os, const ModelSubstitution< Rational, Poly > &ms) |
template<typename Rational , typename Poly > | |
std::ostream & | operator<< (std::ostream &os, const ModelSubstitutionPtr< Rational, Poly > &ms) |
template<typename Rational , typename Poly , typename Substitution , typename... Args> | |
ModelValue< Rational, Poly > | createSubstitution (Args &&... args) |
template<typename Rational , typename Poly , typename Substitution , typename... Args> | |
ModelSubstitutionPtr< Rational, Poly > | createSubstitutionPtr (Args &&... args) |
template<typename Rational , typename Poly > | |
ModelValue< Rational, Poly > | createSubstitution (const MultivariateRoot< Poly > &mr) |
bool | operator== (InfinityValue lhs, InfinityValue rhs) |
std::ostream & | operator<< (std::ostream &os, const InfinityValue &iv) |
template<typename Rational , typename Poly > | |
bool | operator== (const ModelValue< Rational, Poly > &lhs, const ModelValue< Rational, Poly > &rhs) |
Check if two Assignments are equal. More... | |
template<typename Rational , typename Poly > | |
bool | operator< (const ModelValue< Rational, Poly > &lhs, const ModelValue< Rational, Poly > &rhs) |
template<typename R , typename P > | |
std::ostream & | operator<< (std::ostream &os, const ModelValue< R, P > &mv) |
bool | operator== (const ModelVariable &lhs, const ModelVariable &rhs) |
Return true if lhs is equal to rhs. More... | |
bool | operator< (const ModelVariable &lhs, const ModelVariable &rhs) |
Return true if lhs is smaller than rhs. More... | |
std::ostream & | operator<< (std::ostream &os, const ModelVariable &mv) |
std::ostream & | operator<< (std::ostream &_os, const Sort &_sort) |
bool | operator== (Sort lhs, Sort rhs) |
bool | operator!= (Sort lhs, Sort rhs) |
bool | operator< (Sort lhs, Sort rhs) |
Checks whether one sort is smaller than another. More... | |
bool | operator< (const SortContent &lhs, const SortContent &rhs) |
template<typename... Args> | |
Sort | getSort (Args &&... args) |
Gets the sort specified by the arguments. More... | |
std::ostream & | operator<< (std::ostream &os, const SortValue &sv) |
Prints the given sort value on the given output stream. More... | |
bool | operator== (const SortValue &lhs, const SortValue &rhs) |
Compares two sort values for equality. More... | |
bool | operator< (const SortValue &lhs, const SortValue &rhs) |
Orders two sort values. More... | |
SortValue | newSortValue (const Sort &sort) |
Creates a new value for the given sort. More... | |
SortValue | defaultSortValue (const Sort &sort) |
Returns the default value for the given sort. More... | |
void | collectUFVars (std::set< UVariable > &uvars, UFInstance ufi) |
bool | operator== (const UEquality &lhs, const UEquality &rhs) |
bool | operator!= (const UEquality &lhs, const UEquality &rhs) |
bool | operator< (const UEquality &lhs, const UEquality &rhs) |
std::ostream & | operator<< (std::ostream &os, const UEquality &ueq) |
Prints the given uninterpreted equality on the given output stream. More... | |
std::ostream & | operator<< (std::ostream &os, const UFInstance &ufun) |
Prints the given uninterpreted function instance on the given output stream. More... | |
bool | operator== (const UFInstance &lhs, const UFInstance &rhs) |
bool | operator< (const UFInstance &lhs, const UFInstance &rhs) |
UFInstance | newUFInstance (const UninterpretedFunction &uf, std::vector< UTerm > &&args) |
Gets the uninterpreted function instance with the given name, domain, arguments and codomain. More... | |
UFInstance | newUFInstance (const UninterpretedFunction &uf, const std::vector< UTerm > &args) |
Gets the uninterpreted function instance with the given name, domain, arguments and codomain. More... | |
bool | operator== (const UFContent &lhs, const UFContent &rhs) |
bool | operator< (const UFContent &lhs, const UFContent &rhs) |
UninterpretedFunction | newUninterpretedFunction (std::string name, std::vector< Sort > domain, Sort codomain) |
Gets the uninterpreted function with the given name, domain, arguments and codomain. More... | |
std::ostream & | operator<< (std::ostream &os, const UFModel &ufm) |
Prints the given uninterpreted function model on the given output stream. More... | |
bool | operator== (const UFModel &lhs, const UFModel &rhs) |
Compares two UFModel objects for equality. More... | |
bool | operator< (const UFModel &lhs, const UFModel &rhs) |
Checks whether one UFModel is smaller than another. More... | |
bool | operator== (const UninterpretedFunction &lhs, const UninterpretedFunction &rhs) |
Check whether two uninterpreted functions are equal. More... | |
bool | operator< (const UninterpretedFunction &lhs, const UninterpretedFunction &rhs) |
Check whether one uninterpreted function is smaller than another. More... | |
std::ostream & | operator<< (std::ostream &os, const UninterpretedFunction &ufun) |
Prints the given uninterpreted function on the given output stream. More... | |
bool | operator== (const UTerm &lhs, const UTerm &rhs) |
bool | operator!= (const UTerm &lhs, const UTerm &rhs) |
bool | operator< (const UTerm &lhs, const UTerm &rhs) |
std::ostream & | operator<< (std::ostream &os, const UTerm &ut) |
Prints the given uninterpreted term on the given output stream. More... | |
std::ostream & | operator<< (std::ostream &os, UVariable uvar) |
Prints the given uninterpreted variable on the given output stream. More... | |
bool | operator== (UVariable lhs, UVariable rhs) |
bool | operator< (UVariable lhs, UVariable rhs) |
template<typename T > | |
std::string | binary (const T &a, const bool &spacing=true) |
Return the binary representation given value as bit string. More... | |
std::string | basename (const std::string &filename) |
Return the basename of a given filename. More... | |
Multiplication operators | |
Monomial::Arg | operator* (const Monomial::Arg &lhs, const Monomial::Arg &rhs) |
Perform a multiplication involving a monomial. More... | |
Monomial::Arg | operator* (const Monomial::Arg &lhs, Variable rhs) |
Perform a multiplication involving a monomial. More... | |
Monomial::Arg | operator* (Variable lhs, const Monomial::Arg &rhs) |
Perform a multiplication involving a monomial. More... | |
Monomial::Arg | operator* (Variable lhs, Variable rhs) |
Perform a multiplication involving a monomial. More... | |
template<typename C , typename O , typename P > | |
auto | operator* (const MultivariatePolynomial< C, O, P > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Perform a multiplication involving a polynomial using operator*=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator* (const MultivariatePolynomial< C, O, P > &lhs, const Term< C > &rhs) |
Perform a multiplication involving a polynomial using operator*=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator* (const MultivariatePolynomial< C, O, P > &lhs, const Monomial::Arg &rhs) |
Perform a multiplication involving a polynomial using operator*=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator* (const MultivariatePolynomial< C, O, P > &lhs, Variable rhs) |
Perform a multiplication involving a polynomial using operator*=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator* (const MultivariatePolynomial< C, O, P > &lhs, const C &rhs) |
Perform a multiplication involving a polynomial using operator*=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator* (const Term< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Perform a multiplication involving a polynomial using operator*=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator* (const Monomial::Arg &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Perform a multiplication involving a polynomial using operator*=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator* (Variable lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Perform a multiplication involving a polynomial using operator*=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator* (const C &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Perform a multiplication involving a polynomial using operator*=() . More... | |
template<typename Coeff > | |
Term< Coeff > | operator* (Term< Coeff > lhs, const Term< Coeff > &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff > | |
Term< Coeff > | operator* (Term< Coeff > lhs, const Monomial::Arg &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff > | |
Term< Coeff > | operator* (Term< Coeff > lhs, Variable rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff > | |
Term< Coeff > | operator* (Term< Coeff > lhs, const Coeff &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff > | |
Term< Coeff > | operator* (const Monomial::Arg &lhs, const Term< Coeff > &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff , EnableIf< carl::is_number_type< Coeff >> = dummy> | |
Term< Coeff > | operator* (const Monomial::Arg &lhs, const Coeff &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff > | |
Term< Coeff > | operator* (Variable lhs, const Term< Coeff > &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff > | |
Term< Coeff > | operator* (Variable lhs, const Coeff &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff > | |
Term< Coeff > | operator* (const Coeff &lhs, const Term< Coeff > &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff , EnableIf< carl::is_number_type< Coeff >> = dummy> | |
Term< Coeff > | operator* (const Coeff &lhs, const Monomial::Arg &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff > | |
Term< Coeff > | operator* (const Coeff &lhs, Variable rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff , EnableIf< carl::is_subset_of_rationals_type< Coeff >> = dummy> | |
Term< Coeff > | operator/ (const Term< Coeff > &lhs, const Coeff &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff , EnableIf< carl::is_subset_of_rationals_type< Coeff >> = dummy> | |
Term< Coeff > | operator/ (const Monomial::Arg &lhs, const Coeff &rhs) |
Perform a multiplication involving a term. More... | |
template<typename Coeff , EnableIf< carl::is_subset_of_rationals_type< Coeff >> = dummy> | |
Term< Coeff > | operator/ (Variable &lhs, const Coeff &rhs) |
Perform a multiplication involving a term. More... | |
template<typename P > | |
FactorizedPolynomial< P > | operator* (const FactorizedPolynomial< P > &_lhs, const FactorizedPolynomial< P > &_rhs) |
Perform a multiplication involving a polynomial. More... | |
template<typename P > | |
FactorizedPolynomial< P > | operator* (const FactorizedPolynomial< P > &_lhs, const typename FactorizedPolynomial< P >::CoeffType &_rhs) |
Perform a multiplication involving a polynomial. More... | |
template<typename P > | |
FactorizedPolynomial< P > | operator* (const typename FactorizedPolynomial< P >::CoeffType &_lhs, const FactorizedPolynomial< P > &_rhs) |
Perform a multiplication involving a polynomial. More... | |
template<typename P > | |
FactorizedPolynomial< P > | operator/ (const FactorizedPolynomial< P > &_lhs, const typename FactorizedPolynomial< P >::CoeffType &_rhs) |
Perform a multiplication involving a polynomial. More... | |
Comparison operators | |
bool | operator== (const Monomial &lhs, const Monomial &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator== (const Monomial::Arg &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator== (const Monomial::Arg &lhs, Variable rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator== (Variable lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator!= (const Monomial::Arg &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator!= (const Monomial::Arg &lhs, Variable rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator!= (Variable lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator< (const Monomial::Arg &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator< (const Monomial::Arg &lhs, Variable rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator< (Variable lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator<= (const Monomial::Arg &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator<= (const Monomial::Arg &lhs, Variable rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator<= (Variable lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator> (const Monomial::Arg &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator> (const Monomial::Arg &lhs, Variable rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator> (Variable lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator>= (const Monomial::Arg &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator>= (const Monomial::Arg &lhs, Variable rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
bool | operator>= (Variable lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator== (const Term< Coeff > &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator== (const Term< Coeff > &lhs, const Monomial &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator== (const Term< Coeff > &lhs, Variable rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator== (const Term< Coeff > &lhs, const Coeff &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator== (const Monomial::Arg &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator== (Variable lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator== (const Coeff &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator!= (const Term< Coeff > &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator!= (const Term< Coeff > &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator!= (const Term< Coeff > &lhs, Variable rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator!= (const Term< Coeff > &lhs, const Coeff &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator!= (const Monomial::Arg &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator!= (Variable lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator!= (const Coeff &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator< (const Term< Coeff > &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator< (const Term< Coeff > &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator< (const Term< Coeff > &lhs, Variable rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator< (const Term< Coeff > &lhs, const Coeff &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator< (const Monomial::Arg &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator< (Variable lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator< (const Coeff &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator<= (const Term< Coeff > &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator<= (const Term< Coeff > &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator<= (const Term< Coeff > &lhs, Variable rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator<= (const Term< Coeff > &lhs, const Coeff &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator<= (const Monomial::Arg &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator<= (Variable lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator<= (const Coeff &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator> (const Term< Coeff > &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator> (const Term< Coeff > &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator> (const Term< Coeff > &lhs, Variable rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator> (const Term< Coeff > &lhs, const Coeff &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator> (const Monomial::Arg &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator> (Variable lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator> (const Coeff &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator>= (const Term< Coeff > &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator>= (const Term< Coeff > &lhs, const Monomial::Arg &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator>= (const Term< Coeff > &lhs, Variable rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator>= (const Term< Coeff > &lhs, const Coeff &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator>= (const Monomial::Arg &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator>= (Variable lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
template<typename Coeff > | |
bool | operator>= (const Coeff &lhs, const Term< Coeff > &rhs) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable. More... | |
Division operators | |
template<typename C , typename O , typename P , EnableIf< carl::is_number_type< C >> = dummy> | |
MultivariatePolynomial< C, O, P > | operator/ (const MultivariatePolynomial< C, O, P > &lhs, const C &rhs) |
Perform a division involving a polynomial. More... | |
Equality comparison operators | |
template<typename C , typename O , typename P > | |
bool | operator== (const MultivariatePolynomial< C, O, P > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const MultivariatePolynomial< C, O, P > &lhs, const Term< C > &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const MultivariatePolynomial< C, O, P > &lhs, const Monomial::Arg &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const MultivariatePolynomial< C, O, P > &lhs, Variable rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const MultivariatePolynomial< C, O, P > &lhs, const C &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P , DisableIf< std::is_integral< C >> = dummy> | |
bool | operator== (const MultivariatePolynomial< C, O, P > &lhs, int rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const Term< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const Monomial::Arg &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (Variable lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const C &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const UnivariatePolynomial< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const MultivariatePolynomial< C, O, P > &lhs, const UnivariatePolynomial< C > &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const UnivariatePolynomial< MultivariatePolynomial< C >> &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator== (const MultivariatePolynomial< C, O, P > &lhs, const UnivariatePolynomial< MultivariatePolynomial< C >> &rhs) |
Checks if the two arguments are equal. More... | |
template<typename P > | |
bool | operator== (const FactorizedPolynomial< P > &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the two arguments are equal. More... | |
template<typename P > | |
bool | operator== (const FactorizedPolynomial< P > &_lhs, const typename FactorizedPolynomial< P >::CoeffType &_rhs) |
Checks if the two arguments are equal. More... | |
template<typename P > | |
bool | operator== (const typename FactorizedPolynomial< P >::CoeffType &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the two arguments are equal. More... | |
Inequality comparison operators | |
template<typename C , typename O , typename P > | |
bool | operator!= (const MultivariatePolynomial< C, O, P > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const MultivariatePolynomial< C, O, P > &lhs, const Term< C > &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const MultivariatePolynomial< C, O, P > &lhs, const Monomial::Arg &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const MultivariatePolynomial< C, O, P > &lhs, Variable rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const MultivariatePolynomial< C, O, P > &lhs, const C &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const Term< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const Monomial::Arg &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (Variable lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const C &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const UnivariatePolynomial< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const MultivariatePolynomial< C, O, P > &lhs, const UnivariatePolynomial< C > &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const UnivariatePolynomial< MultivariatePolynomial< C >> &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename C , typename O , typename P > | |
bool | operator!= (const MultivariatePolynomial< C, O, P > &lhs, const UnivariatePolynomial< MultivariatePolynomial< C >> &rhs) |
Checks if the two arguments are not equal. More... | |
template<typename P > | |
bool | operator!= (const FactorizedPolynomial< P > &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the two arguments are not equal. More... | |
template<typename P > | |
bool | operator!= (const FactorizedPolynomial< P > &_lhs, const typename FactorizedPolynomial< P >::CoeffType &_rhs) |
Checks if the two arguments are not equal. More... | |
template<typename P > | |
bool | operator!= (const typename FactorizedPolynomial< P >::CoeffType &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the two arguments are not equal. More... | |
Less than comparison operators | |
template<typename C , typename O , typename P > | |
bool | operator< (const MultivariatePolynomial< C, O, P > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator< (const MultivariatePolynomial< C, O, P > &lhs, const Term< C > &rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator< (const MultivariatePolynomial< C, O, P > &lhs, const Monomial::Arg &rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator< (const MultivariatePolynomial< C, O, P > &lhs, Variable rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator< (const MultivariatePolynomial< C, O, P > &lhs, const C &rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator< (const Term< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator< (const Monomial::Arg &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator< (Variable lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator< (const C &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename P > | |
bool | operator< (const FactorizedPolynomial< P > &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename P > | |
bool | operator< (const FactorizedPolynomial< P > &_lhs, const typename FactorizedPolynomial< P >::CoeffType &_rhs) |
Checks if the first arguments is less than the second. More... | |
template<typename P > | |
bool | operator< (const typename FactorizedPolynomial< P >::CoeffType &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the first arguments is less than the second. More... | |
Greater than comparison operators | |
template<typename C , typename O , typename P > | |
bool | operator> (const MultivariatePolynomial< C, O, P > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const MultivariatePolynomial< C, O, P > &lhs, const Term< C > &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const MultivariatePolynomial< C, O, P > &lhs, const Monomial::Arg &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const MultivariatePolynomial< C, O, P > &lhs, Variable rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const MultivariatePolynomial< C, O, P > &lhs, const C &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const Term< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const Monomial::Arg &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (Variable lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const C &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const UnivariatePolynomial< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const MultivariatePolynomial< C, O, P > &lhs, const UnivariatePolynomial< C > &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const UnivariatePolynomial< MultivariatePolynomial< C >> &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator> (const MultivariatePolynomial< C, O, P > &lhs, const UnivariatePolynomial< MultivariatePolynomial< C >> &rhs) |
Checks if the first argument is greater than the second. More... | |
template<typename P > | |
bool | operator> (const FactorizedPolynomial< P > &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the first arguments is greater than the second. More... | |
template<typename P > | |
bool | operator> (const FactorizedPolynomial< P > &_lhs, const typename FactorizedPolynomial< P >::CoeffType &_rhs) |
Checks if the first arguments is greater than the second. More... | |
template<typename P > | |
bool | operator> (const typename FactorizedPolynomial< P >::CoeffType &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the first arguments is greater than the second. More... | |
Less or equal comparison operators | |
template<typename C , typename O , typename P > | |
bool | operator<= (const MultivariatePolynomial< C, O, P > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const MultivariatePolynomial< C, O, P > &lhs, const Term< C > &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const MultivariatePolynomial< C, O, P > &lhs, const Monomial::Arg &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const MultivariatePolynomial< C, O, P > &lhs, Variable rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const MultivariatePolynomial< C, O, P > &lhs, const C &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const Term< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const Monomial::Arg &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (Variable lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const C &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const UnivariatePolynomial< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const MultivariatePolynomial< C, O, P > &lhs, const UnivariatePolynomial< C > &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const UnivariatePolynomial< MultivariatePolynomial< C >> &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator<= (const MultivariatePolynomial< C, O, P > &lhs, const UnivariatePolynomial< MultivariatePolynomial< C >> &rhs) |
Checks if the first argument is less or equal than the second. More... | |
template<typename P > | |
bool | operator<= (const FactorizedPolynomial< P > &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the first arguments is less or equal than the second. More... | |
template<typename P > | |
bool | operator<= (const FactorizedPolynomial< P > &_lhs, const typename FactorizedPolynomial< P >::CoeffType &_rhs) |
Checks if the first arguments is less or equal than the second. More... | |
template<typename P > | |
bool | operator<= (const typename FactorizedPolynomial< P >::CoeffType &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the first arguments is less or equal than the second. More... | |
Greater or equal comparison operators | |
template<typename C , typename O , typename P > | |
bool | operator>= (const MultivariatePolynomial< C, O, P > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const MultivariatePolynomial< C, O, P > &lhs, const Term< C > &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const MultivariatePolynomial< C, O, P > &lhs, const Monomial::Arg &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const MultivariatePolynomial< C, O, P > &lhs, Variable rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const MultivariatePolynomial< C, O, P > &lhs, const C &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const Term< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const Monomial::Arg &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (Variable lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const C &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const UnivariatePolynomial< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const MultivariatePolynomial< C, O, P > &lhs, const UnivariatePolynomial< C > &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const UnivariatePolynomial< MultivariatePolynomial< C >> &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename C , typename O , typename P > | |
bool | operator>= (const MultivariatePolynomial< C, O, P > &lhs, const UnivariatePolynomial< MultivariatePolynomial< C >> &rhs) |
Checks if the first argument is greater or equal than the second. More... | |
template<typename P > | |
bool | operator>= (const FactorizedPolynomial< P > &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the first arguments is greater or equal than the second. More... | |
template<typename P > | |
bool | operator>= (const FactorizedPolynomial< P > &_lhs, const typename FactorizedPolynomial< P >::CoeffType &_rhs) |
Checks if the first arguments is greater or equal than the second. More... | |
template<typename P > | |
bool | operator>= (const typename FactorizedPolynomial< P >::CoeffType &_lhs, const FactorizedPolynomial< P > &_rhs) |
Checks if the first arguments is greater or equal than the second. More... | |
Addition operators | |
template<typename C , typename O , typename P > | |
auto | operator+ (const MultivariatePolynomial< C, O, P > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator+ (const MultivariatePolynomial< C, O, P > &lhs, const Term< C > &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator+ (const MultivariatePolynomial< C, O, P > &lhs, const Monomial::Arg &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator+ (const MultivariatePolynomial< C, O, P > &lhs, Variable rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator+ (const MultivariatePolynomial< C, O, P > &lhs, const C &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator+ (const Term< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C > | |
auto | operator+ (const Term< C > &lhs, const Term< C > &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C > | |
auto | operator+ (const Term< C > &lhs, const Monomial::Arg &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C > | |
auto | operator+ (const Term< C > &lhs, Variable rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C > | |
auto | operator+ (const Term< C > &lhs, const C &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator+ (const Monomial::Arg &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C > | |
auto | operator+ (const Monomial::Arg &lhs, const Term< C > &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , EnableIf< carl::is_number_type< C >> = dummy> | |
auto | operator+ (const Monomial::Arg &lhs, const C &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator+ (Variable lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C > | |
auto | operator+ (Variable lhs, const Term< C > &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , EnableIf< carl::is_number_type< C >> = dummy> | |
auto | operator+ (Variable lhs, const C &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator+ (const C &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C > | |
auto | operator+ (const C &lhs, const Term< C > &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , EnableIf< carl::is_number_type< C >> = dummy> | |
auto | operator+ (const C &lhs, const Monomial::Arg &rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename C , EnableIf< carl::is_number_type< C >> = dummy> | |
auto | operator+ (const C &lhs, Variable rhs) |
Performs an addition involving a polynomial using operator+=() . More... | |
template<typename P > | |
FactorizedPolynomial< P > | operator+ (const FactorizedPolynomial< P > &_lhs, const FactorizedPolynomial< P > &_rhs) |
Performs an addition involving a polynomial. More... | |
template<typename P > | |
FactorizedPolynomial< P > | operator+ (const FactorizedPolynomial< P > &_lhs, const typename FactorizedPolynomial< P >::CoeffType &_rhs) |
Performs an addition involving a polynomial. More... | |
template<typename P > | |
FactorizedPolynomial< P > | operator+ (const typename FactorizedPolynomial< P >::CoeffType &_lhs, const FactorizedPolynomial< P > &_rhs) |
Performs an addition involving a polynomial. More... | |
Subtraction operators | |
template<typename C , typename O , typename P > | |
auto | operator- (const MultivariatePolynomial< C, O, P > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator- (const MultivariatePolynomial< C, O, P > &lhs, const Term< C > &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator- (const MultivariatePolynomial< C, O, P > &lhs, const Monomial::Arg &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator- (const MultivariatePolynomial< C, O, P > &lhs, Variable rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator- (const MultivariatePolynomial< C, O, P > &lhs, const C &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator- (const Term< C > &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C > | |
auto | operator- (const Term< C > &lhs, const Term< C > &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C > | |
auto | operator- (const Term< C > &lhs, const Monomial::Arg &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C > | |
auto | operator- (const Term< C > &lhs, Variable rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C > | |
auto | operator- (const Term< C > &lhs, const C &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator- (const Monomial::Arg &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C > | |
auto | operator- (const Monomial::Arg &lhs, const Term< C > &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , EnableIf< carl::is_number_type< C >> = dummy> | |
auto | operator- (const Monomial::Arg &lhs, const C &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator- (Variable lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C > | |
auto | operator- (Variable lhs, const Term< C > &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , EnableIf< carl::is_number_type< C >> = dummy> | |
auto | operator- (Variable lhs, const C &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , typename O , typename P > | |
auto | operator- (const C &lhs, const MultivariatePolynomial< C, O, P > &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C > | |
auto | operator- (const C &lhs, const Term< C > &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , EnableIf< carl::is_number_type< C >> = dummy> | |
auto | operator- (const C &lhs, const Monomial::Arg &rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename C , EnableIf< carl::is_number_type< C >> = dummy> | |
auto | operator- (const C &lhs, Variable rhs) |
Performs a subtraction involving a polynomial using operator-=() . More... | |
template<typename P > | |
FactorizedPolynomial< P > | operator- (const FactorizedPolynomial< P > &_lhs, const FactorizedPolynomial< P > &_rhs) |
Performs an subtraction involving a polynomial. More... | |
template<typename P > | |
FactorizedPolynomial< P > | operator- (const FactorizedPolynomial< P > &_lhs, const typename FactorizedPolynomial< P >::CoeffType &_rhs) |
Performs an subtraction involving a polynomial. More... | |
template<typename P > | |
FactorizedPolynomial< P > | operator- (const typename FactorizedPolynomial< P >::CoeffType &_lhs, const FactorizedPolynomial< P > &_rhs) |
Performs an subtraction involving a polynomial. More... | |
In-place multiplication operators | |
template<typename Coeff > | |
Term< Coeff > & | operator*= (Term< Coeff > &lhs, const Coeff &rhs) |
Multiply a term with something and return the changed term. More... | |
template<typename Coeff > | |
Term< Coeff > & | operator*= (Term< Coeff > &lhs, Variable rhs) |
Multiply a term with something and return the changed term. More... | |
template<typename Coeff > | |
Term< Coeff > & | operator*= (Term< Coeff > &lhs, const Monomial::Arg &rhs) |
Multiply a term with something and return the changed term. More... | |
template<typename Coeff > | |
Term< Coeff > & | operator*= (Term< Coeff > &lhs, const Term< Coeff > &rhs) |
Multiply a term with something and return the changed term. More... | |
carl is the main namespace for the library.
This file provides mechanisms to substitute a model into an expression and to evaluate an expression over a model.
Class to create a square root expression object.
Everything included in this library is found in this namespace.
using carl::Assignment = typedef std::map<Variable, T> |
using carl::Bool = typedef typename dependent_bool_type<B, T...>::type |
using carl::Coeff = typedef typename UnderlyingNumberType<P>::type |
Definition at line 20 of file FactorizedPolynomial.h.
using carl::CoeffMatrix = typedef Eigen::Matrix<Coeff, Eigen::Dynamic, Eigen::Dynamic> |
using carl::Conditional = typedef typename std::conditional<If, Then, Else>::type |
using carl::ConstraintBounds = typedef FastMap<Pol, std::map<typename Pol::NumberType, std::pair<Relation,Formula<Pol> >> > |
A map from formula pointers to a map of rationals to a pair of a constraint relation and a formula pointer. (internally used)
Definition at line 7 of file ConstraintBounds.h.
using carl::ConstraintPool = typedef pool::Pool<CachedConstraintContent<Pol> > |
Definition at line 54 of file Constraint.h.
using carl::Constraints = typedef std::set<Constraint<Poly>, carl::less<Constraint<Poly>, false> > |
Definition at line 28 of file Constraint.h.
Definition at line 115 of file CriticalPairs.h.
using carl::DisableIf = typedef typename std::enable_if<Not<any<Condition...> >::value, dtl::enabled>::type |
using carl::EnableIf = typedef typename std::enable_if<all<Condition...>::value, dtl::enabled>::type |
using carl::EnableIfBool = typedef typename std::enable_if<Condition, dtl::enabled>::type |
using carl::EncodingCache = typedef std::map<MultivariateRoot<Poly>, std::pair<std::vector<BasicConstraint<Poly> >, Variable> > |
Definition at line 45 of file Encoding.h.
using carl::exponent = typedef std::size_t |
Type of an exponent.
Definition at line 29 of file Monomial.h.
using carl::FactorMap = typedef std::map<UnivariatePolynomial<Coefficient>, uint> |
Definition at line 35 of file UnivariatePolynomial.h.
using carl::Factors = typedef std::map<Pol,uint> |
using carl::FastMap = typedef std::unordered_map<T1, T2, std::hash<T1> > |
Definition at line 67 of file container_types.h.
using carl::FastPointerMap = typedef std::unordered_map<const T1*, T2, pointerHash<T1>, pointerEqual<T1> > |
Definition at line 73 of file container_types.h.
using carl::FastPointerMapB = typedef std::unordered_map<const T1*, T2, pointerHashWithNull<T1>, pointerEqualWithNull<T1> > |
Definition at line 85 of file container_types.h.
using carl::FastPointerSet = typedef std::unordered_set<const T*, pointerHash<T>, pointerEqual<T> > |
Definition at line 70 of file container_types.h.
using carl::FastPointerSetB = typedef std::unordered_set<const T*, pointerHashWithNull<T>, pointerEqualWithNull<T> > |
Definition at line 82 of file container_types.h.
using carl::FastSet = typedef std::unordered_set<T, std::hash<T> > |
Definition at line 64 of file container_types.h.
using carl::FastSharedPointerMap = typedef std::unordered_map<std::shared_ptr<const T1>, T2, sharedPointerHash<T1>, sharedPointerEqual<T1> > |
Definition at line 79 of file container_types.h.
using carl::FastSharedPointerMapB = typedef std::unordered_map<std::shared_ptr<const T1>, T2, sharedPointerHashWithNull<T1>, pointerEqualWithNull<T1> > |
Definition at line 91 of file container_types.h.
using carl::FastSharedPointerSet = typedef std::unordered_set<std::shared_ptr<const T>, sharedPointerHash<T>, sharedPointerEqual<T> > |
Definition at line 76 of file container_types.h.
using carl::FastSharedPointerSetB = typedef std::unordered_set<std::shared_ptr<const T>, sharedPointerHashWithNull<T>, pointerEqualWithNull<T> > |
Definition at line 88 of file container_types.h.
using carl::Formulas = typedef std::vector<Formula<Poly> > |
Definition at line 18 of file FormulaContent.h.
using carl::FormulaSet = typedef std::set<Formula<Poly> > |
Definition at line 20 of file FormulaContent.h.
using carl::FormulasMulti = typedef std::multiset<Formula<Poly> > |
Definition at line 22 of file FormulaContent.h.
using carl::GrLexOrdering = typedef MonomialComparator<Monomial::compareGradedLexical, true > |
Definition at line 63 of file MonomialOrdering.h.
using carl::IntegralTypeIfDifferent = typedef typename std::enable_if<!std::is_same<C, typename IntegralType<C>::type>::value, typename IntegralType<C>::type>::type |
Definition at line 321 of file typetraits.h.
using carl::LexOrdering = typedef MonomialComparator<Monomial::compareLexical, false > |
Definition at line 62 of file MonomialOrdering.h.
using carl::ModelSubstitutionPtr = typedef std::unique_ptr<ModelSubstitution<Rational,Poly> > |
Definition at line 24 of file ModelValue.h.
using carl::MonomialOrderingFunction = typedef CompareResult(*)(const Monomial::Arg&, const Monomial::Arg&) |
Definition at line 14 of file MonomialOrdering.h.
using carl::OrderedAssignment = typedef std::vector<std::pair<Variable, T> > |
using carl::pointerEqual = typedef carl::equal_to<const T*, false> |
Definition at line 18 of file container_types.h.
using carl::pointerEqualWithNull = typedef carl::equal_to<const T*, true> |
Definition at line 20 of file container_types.h.
using carl::pointerHash = typedef carl::hash<T*, false> |
Definition at line 36 of file container_types.h.
using carl::pointerHashWithNull = typedef carl::hash<T*, true> |
Definition at line 38 of file container_types.h.
using carl::pointerLess = typedef carl::less<const T*, false> |
Definition at line 27 of file container_types.h.
using carl::pointerLessWithNull = typedef carl::less<const T*, true> |
Definition at line 29 of file container_types.h.
using carl::PointerMap = typedef std::map<const T1*, T2, pointerLess<T1> > |
Definition at line 52 of file container_types.h.
using carl::PointerMultiSet = typedef std::multiset<const T*, pointerLess<T> > |
Definition at line 49 of file container_types.h.
using carl::PointerSet = typedef std::set<const T*, pointerLess<T> > |
Definition at line 46 of file container_types.h.
using carl::precision_t = typedef std::size_t |
using carl::QuantifierPrefix = typedef std::vector<std::pair<Quantifier, carl::Variable> > |
using carl::sharedPointerEqual = typedef carl::equal_to<std::shared_ptr<const T>, false> |
Definition at line 22 of file container_types.h.
using carl::sharedPointerEqualWithNull = typedef carl::equal_to<std::shared_ptr<const T>, true> |
Definition at line 24 of file container_types.h.
using carl::sharedPointerHash = typedef carl::hash<std::shared_ptr<const T>*, false> |
Definition at line 40 of file container_types.h.
using carl::sharedPointerHashWithNull = typedef carl::hash<std::shared_ptr<const T>*, true> |
Definition at line 42 of file container_types.h.
using carl::sharedPointerLess = typedef carl::less<std::shared_ptr<const T>*, false> |
Definition at line 31 of file container_types.h.
using carl::sharedPointerLessWithNull = typedef carl::less<std::shared_ptr<const T>, true> |
Definition at line 33 of file container_types.h.
using carl::SharedPointerMap = typedef std::map<std::shared_ptr<const T1>, T2, sharedPointerLess<T1> > |
Definition at line 61 of file container_types.h.
using carl::SharedPointerMultiSet = typedef std::multiset<std::shared_ptr<const T>, sharedPointerLess<T> > |
Definition at line 58 of file container_types.h.
using carl::SharedPointerSet = typedef std::set<std::shared_ptr<const T>, sharedPointerLess<T> > |
Definition at line 55 of file container_types.h.
using carl::sint = typedef std::int64_t |
using carl::TypeInfoPair = typedef std::pair<T*,I> |
using carl::uint = typedef std::uint64_t |
using carl::UnivariatePolynomialPtr = typedef std::shared_ptr<UnivariatePolynomial<Coefficient> > |
Definition at line 32 of file UnivariatePolynomial.h.
using carl::Variables = typedef std::set<Variable> |
|
strong |
Definition at line 13 of file BoundType.h.
|
strong |
Enumerator | |
---|---|
EQ | |
NEQ | |
ULT | |
ULE | |
UGT | |
UGE | |
SLT | |
SLE | |
SGT | |
SGE |
Definition at line 15 of file BVCompareRelation.h.
|
strong |
Enumerator | |
---|---|
CONSTANT | |
VARIABLE | |
CONCAT | |
EXTRACT | |
NOT | |
NEG | |
AND | |
OR | |
XOR | |
NAND | |
NOR | |
XNOR | |
ADD | |
SUB | |
MUL | |
DIV_U | |
DIV_S | |
MOD_U | |
MOD_S1 | |
MOD_S2 | |
EQ | |
LSHIFT | |
RSHIFT_LOGIC | |
RSHIFT_ARITH | |
LROTATE | |
RROTATE | |
EXT_U | |
EXT_S | |
REPEAT |
Definition at line 10 of file BVTermType.h.
|
strong |
Enumerator | |
---|---|
N | |
Z | |
U | |
D | |
A |
Definition at line 23 of file roundingConversion.h.
|
strong |
Enumerator | |
---|---|
LESS | |
EQUAL | |
GREATER |
Definition at line 12 of file CompareResult.h.
|
strong |
Regarding a polynomial as a function , its definiteness gives information about the codomain .
Enumerator | |
---|---|
NEGATIVE | Indicates that . |
NEGATIVE_SEMI | Indicates that . |
NON | Indicates that values may be positive and negative. |
POSITIVE_SEMI | Indicates that . |
POSITIVE | Indicates that . |
Definition at line 16 of file Definiteness.h.
enum carl::FormulaType |
Represent the type of a formula to allow faster/specialized processing.
For each (supported) SMTLIB theory, we have
Enumerator | |
---|---|
ITE | |
EXISTS | |
FORALL | |
TRUE | |
FALSE | |
BOOL | |
NOT | |
NOT | |
IMPLIES | |
AND | |
AND | |
OR | |
OR | |
XOR | |
XOR | |
IFF | |
CONSTRAINT | |
VARCOMPARE | |
VARASSIGN | |
BITVECTOR | |
UEQ |
Definition at line 35 of file FormulaContent.h.
|
strong |
|
strong |
Enumerator | |
---|---|
CauchyBound | |
LowDegree | |
Memory | |
Default |
Definition at line 46 of file UnivariatePolynomial.h.
|
strong |
|
strong |
Enumerator | |
---|---|
EQ | |
NEQ | |
LESS | |
LEQ | |
GREATER | |
GEQ |
Definition at line 20 of file Relation.h.
|
strong |
|
strong |
Enumerator | |
---|---|
Generic | |
Lazard | |
Ducos | |
Default |
Definition at line 16 of file Resultant.h.
Enumerator | |
---|---|
LESS | |
LESS | |
LESS | |
EQUAL | |
EQUAL | |
GREATER | |
GREATER | |
GREATER |
Definition at line 15 of file SignCondition.h.
Enumerator | |
---|---|
GREEDY_I | |
GREEDY_Is | |
GREEDY_II | |
GREEDY_IIs |
Definition at line 3 of file MultivariateHornerSettings.h.
|
strong |
Several types of variables are supported.
BOOL: the Booleans REAL: the reals INT: the integers UNINTERPRETED: all uninterpreted types BITVECTOR: bitvectors of any length
Enumerator | |
---|---|
VT_BOOL | |
VT_REAL | |
VT_INT | |
VT_UNINTERPRETED | |
VT_BITVECTOR | |
MIN_TYPE | |
MAX_TYPE | |
TYPE_SIZE |
Definition at line 28 of file Variable.h.
|
inline |
Get absolute value of an integer.
n | An integer. |
Definition at line 237 of file operations.h.
|
inline |
Get absolute value of a fraction.
n | A fraction. |
Definition at line 246 of file operations.h.
Definition at line 190 of file GFNumber.h.
Method which returns the absolute value of the passed number.
_in | Number. |
Definition at line 1511 of file Interval.h.
|
static |
|
inline |
Definition at line 258 of file operations.h.
|
inline |
Basic Operators.
The following functions implement simple operations on the given numbers.
Definition at line 252 of file operations.h.
RealAlgebraicNumberThom<Number> carl::abs | ( | const RealAlgebraicNumberThom< Number > & | n | ) |
Definition at line 143 of file ran_thom.h.
|
inline |
Interval<Number> carl::acos | ( | const Interval< Number > & | i | ) |
Definition at line 58 of file Trigonometry.h.
|
inline |
Definition at line 161 of file operations.h.
void carl::acos_assign | ( | Interval< Number > & | i | ) |
Interval<Number> carl::acosh | ( | const Interval< Number > & | i | ) |
Definition at line 130 of file Trigonometry.h.
void carl::acosh_assign | ( | Interval< Number > & | i | ) |
Formula<Pol> carl::addConstraintBound | ( | ConstraintBounds< Pol > & | _constraintBounds, |
const Formula< Pol > & | _constraint, | ||
bool | _inConjunction | ||
) |
Adds the bound to the bounds of the polynomial specified by this constraint.
E.g., if the constraint is p+b~0, where p is a sum of terms, being a rational (actually integer) coefficient times a non-trivial (!=1) monomial( product of variables to the power of an exponent), b is a rational and ~ is any constraint relation. Furthermore, the leading coefficient of p is 1. Then we add the bound -b to the bounds of p (means that p ~ -b) stored in the given constraint bounds.
_constraintBounds | An object collecting bounds of polynomials. |
_constraint | The constraint to find a bound for a polynomial for. |
_inConjunction | true, if the constraint is part of a conjunction. false, if the constraint is part of a disjunction. |
Definition at line 25 of file ConstraintBounds.h.
|
inline |
|
inline |
|
inline |
void carl::arithmetic_constraints | ( | const Formula< Pol > & | f, |
std::vector< Constraint< Pol >> & | constraints | ||
) |
Collects all constraint occurring in this formula.
constraints | The container to insert the constraint into. |
Definition at line 79 of file Variables.h.
void carl::arithmetic_constraints | ( | const Formula< Pol > & | f, |
std::vector< Formula< Pol >> & | constraints | ||
) |
Collects all constraint occurring in this formula.
constraints | The container to insert the constraint into. |
Definition at line 97 of file Variables.h.
|
inline |
std::optional< BasicConstraint< Poly > > carl::as_constraint | ( | const VariableComparison< Poly > & | f | ) |
Convert this variable comparison "v < root(..)" into a simpler polynomial (in)equality against zero "p(..) < 0" if that is possible.
Definition at line 98 of file VariableComparison.h.
Interval<Number> carl::asin | ( | const Interval< Number > & | i | ) |
Definition at line 46 of file Trigonometry.h.
void carl::asin_assign | ( | Interval< Number > & | i | ) |
Interval<Number> carl::asinh | ( | const Interval< Number > & | i | ) |
Definition at line 118 of file Trigonometry.h.
void carl::asinh_assign | ( | Interval< Number > & | i | ) |
Interval<Number> carl::atan | ( | const Interval< Number > & | i | ) |
Definition at line 70 of file Trigonometry.h.
void carl::atan_assign | ( | Interval< Number > & | i | ) |
Interval<Number> carl::atanh | ( | const Interval< Number > & | i | ) |
Definition at line 142 of file Trigonometry.h.
void carl::atanh_assign | ( | Interval< Number > & | i | ) |
|
inline |
Return the basename of a given filename.
Definition at line 33 of file logging_utils.h.
std::string carl::binary | ( | const T & | a, |
const bool & | spacing = true |
||
) |
Return the binary representation given value as bit string.
Note that this method is tailored to little endian systems.
a | A value of any type |
spacing | Specifies if the bytes shall be separated by a space. |
Definition at line 17 of file logging_utils.h.
|
inline |
Get the bit size of the representation of a integer.
n | An integer. |
Definition at line 96 of file operations.h.
|
inline |
Get the bit size of the representation of a fraction.
n | A fraction. |
Definition at line 104 of file operations.h.
std::size_t carl::bitsize | ( | const IntRepRealAlgebraicNumber< Number > & | n | ) |
|
inline |
|
inline |
Get the bit size of the representation of a fraction.
n | A fraction. |
Definition at line 104 of file operations.h.
|
inline |
Get the bit size of the representation of a integer.
n | An integer. |
Definition at line 96 of file operations.h.
std::size_t carl::bitsize | ( | const MultivariatePolynomial< Coeff, Ordering, Policies > & | p | ) |
|
inline |
Definition at line 67 of file operations.h.
void carl::bitvector_variables | ( | const Formula< Pol > & | f, |
std::set< BVVariable > & | bvvs | ||
) |
|
inline |
Definition at line 254 of file Variables.h.
|
inline |
|
inline |
Check whether the two bounds connect, for example as for ...3),[3...
Definition at line 74 of file operators.h.
Number carl::branching_point | ( | const IntRepRealAlgebraicNumber< Number > & | n | ) |
const Number& carl::branching_point | ( | const Number & | n | ) |
Definition at line 13 of file NumberOperations.h.
Number carl::branching_point | ( | const RealAlgebraicNumberThom< Number > & | n | ) |
Definition at line 83 of file ran_thom.h.
Coeff carl::cauchyBound | ( | const UnivariatePolynomial< Coeff > & | p | ) |
|
inline |
|
inline |
|
inline |
Method which returns the next larger integer of the passed number or the number itself, if it is already an integer.
_in | Number. |
Definition at line 1520 of file FLOAT_T.h.
Method which returns the next larger integer of the passed number or the number itself, if it is already an integer.
_in | Number. |
Definition at line 1535 of file Interval.h.
Number carl::ceil | ( | const IntRepRealAlgebraicNumber< Number > & | n | ) |
|
inline |
|
inline |
Definition at line 295 of file operations.h.
Number carl::ceil | ( | const RealAlgebraicNumberThom< Number > & | n | ) |
Definition at line 174 of file ran_thom.h.
|
inline |
Definition at line 124 of file operations.h.
Number carl::center | ( | const Interval< Number > & | i | ) |
Returns the center point of the interval.
Definition at line 12 of file Sampling.h.
std::vector<Coeff> carl::charPol | ( | const CoeffMatrix< Coeff > & | m | ) |
|
constexprnoexcept |
Definition at line 27 of file CompileInfo.h.
void carl::collectUFVars | ( | std::set< UVariable > & | uvars, |
UFInstance | ufi | ||
) |
Definition at line 12 of file UEquality.cpp.
signed carl::compare | ( | const BasicConstraint< Pol > & | _constraintA, |
const BasicConstraint< Pol > & | _constraintB | ||
) |
Compares _constraintA with _constraintB.
Definition at line 25 of file Comparison.h.
auto carl::compare | ( | const Constraint< Pol > & | c1, |
const Constraint< Pol > & | c2 | ||
) |
bool carl::compare | ( | const IntRepRealAlgebraicNumber< Number > & | lhs, |
const IntRepRealAlgebraicNumber< Number > & | rhs, | ||
const Relation | relation | ||
) |
bool carl::compare | ( | const IntRepRealAlgebraicNumber< Number > & | lhs, |
const Number & | rhs, | ||
const Relation | relation | ||
) |
std::size_t carl::complexity | ( | const BasicConstraint< Poly > & | c | ) |
Definition at line 11 of file Complexity.h.
|
inline |
Definition at line 11 of file Complexity.h.
std::size_t carl::complexity | ( | const MultivariatePolynomial< Coeff, Ordering, Policies > & | p | ) |
Definition at line 28 of file Complexity.h.
Definition at line 19 of file Complexity.h.
std::size_t carl::complexity | ( | const UnivariatePolynomial< Coeff > & | p | ) |
Definition at line 38 of file Complexity.h.
P carl::computePolynomial | ( | const FactorizedPolynomial< P > & | _fpoly | ) |
Obtains the polynomial (representation) of this factorized polynomial.
Note, that the result won't be stored in the factorized polynomial, hence, this method should only be called for debug purpose.
_fpoly | The factorized polynomial to get its polynomial (representation) for. |
P carl::computePolynomial | ( | const PolynomialFactorizationPair< P > & | _pfPair | ) |
Compute the polynomial from the given polynomial-factorization pair.
_fpPair | A polynomial-factorization pair. |
|
static |
Checks whether this constraint is consistent with the given assignment from the its variables to interval domains.
_solutionInterval | The interval domains of the variables. |
Definition at line 25 of file IntervalEvaluation.h.
|
static |
Checks whether this constraint is consistent with the given assignment from the its variables to interval domains.
_solutionInterval | The interval domains of the variables. |
_stricterRelation | This relation is set to a relation R such that this constraint and the given variable bounds imply the constraint formed by R, comparing this constraint's left-hand side to zero. |
Definition at line 124 of file IntervalEvaluation.h.
bool carl::contained_in | ( | const IntRepRealAlgebraicNumber< Number > & | n, |
const Interval< Number > & | i | ||
) |
Coeff carl::content | ( | const UnivariatePolynomial< Coeff > & | p | ) |
The content of a polynomial is the gcd of the coefficients of the normal part of a polynomial.
The content of zero is zero.
Definition at line 22 of file Content.h.
|
inline |
|
inline |
Definition at line 8 of file conversion.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 9 of file Conversion.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
MultivariateRoot<Poly> carl::convert_to_mvroot | ( | const typename MultivariateRoot< Poly >::RAN & | ran, |
Variable | var | ||
) |
MultivariatePolynomial<C,O,P> carl::coprimePart | ( | const MultivariatePolynomial< C, O, P > & | p, |
const MultivariatePolynomial< C, O, P > & | q | ||
) |
Calculates the coprime part of p and q.
Definition at line 15 of file CoprimePart.h.
|
inline |
Interval<Number> carl::cos | ( | const Interval< Number > & | i | ) |
Definition at line 22 of file Trigonometry.h.
|
inline |
|
inline |
void carl::cos_assign | ( | Interval< Number > & | i | ) |
Interval<Number> carl::cosh | ( | const Interval< Number > & | i | ) |
Definition at line 94 of file Trigonometry.h.
void carl::cosh_assign | ( | Interval< Number > & | i | ) |
int carl::count_real_roots | ( | const std::vector< UnivariatePolynomial< Coefficient >> & | seq, |
const Interval< Coefficient > & | i | ||
) |
Calculate the number of real roots of a polynomial within a given interval based on a sturm sequence of this polynomial.
seq | Sturm sequence. |
i | Interval. |
Definition at line 19 of file RootCounting.h.
int carl::count_real_roots | ( | const UnivariatePolynomial< Coefficient > & | p, |
const Interval< Coefficient > & | i | ||
) |
Count the number of real roots of p within the given interval using Sturm sequences.
p | The polynomial. |
i | Count roots within this interval. |
Definition at line 36 of file RootCounting.h.
|
inline |
|
inline |
Definition at line 89 of file ModelSubstitution.h.
|
inline |
Definition at line 97 of file ModelSubstitution.h.
|
inline |
Returns the default value for the given sort.
sort | The sort to return the default value for. |
Definition at line 76 of file SortValueManager.h.
Poly carl::defining_polynomial | ( | const VariableComparison< Poly > & | f | ) |
Return a polynomial containing the lhs-variable that has a same root for the this lhs-variable as the value that rhs represent, e.g.
if this variable comparison is 'v < 3' then a defining polynomial could be 'v-3', because it has the same root for variable v, i.e., v=3.
Definition at line 138 of file VariableComparison.h.
Definiteness carl::definiteness | ( | const MultivariatePolynomial< C, O, P > & | p, |
bool | full_effort = true |
||
) |
Definiteness carl::definiteness | ( | const Term< Coeff > & | t | ) |
Definition at line 46 of file Definiteness.h.
std::string carl::demangle | ( | const char * | name | ) |
std::list<MultivariatePolynomial<Number> > carl::der | ( | const MultivariatePolynomial< Number > & | p, |
Variable::Arg | var, | ||
uint | from, | ||
uint | upto | ||
) |
Definition at line 17 of file ThomUtil.h.
|
inline |
Computes the (partial) n'th derivative of this monomial with respect to the given variable.
Definition at line 35 of file Derivative.h.
MultivariatePolynomial<C,O,P> carl::derivative | ( | const MultivariatePolynomial< C, O, P > & | p, |
Variable | v, | ||
std::size_t | n = 1 |
||
) |
Computes the n'th derivative of p with respect to v.
Definition at line 86 of file Derivative.h.
const T& carl::derivative | ( | const T & | t, |
Variable | , | ||
std::size_t | n = 1 |
||
) |
Computes the n'th derivative of a number, which is either the number itself (for n = 0) or zero.
Definition at line 23 of file Derivative.h.
Term<C> carl::derivative | ( | const Term< C > & | t, |
Variable | v, | ||
std::size_t | n = 1 |
||
) |
Computes the n'th derivative of t with respect to v.
Definition at line 72 of file Derivative.h.
UnivariatePolynomial<C> carl::derivative | ( | const UnivariatePolynomial< C > & | p, |
std::size_t | n = 1 |
||
) |
Computes the n'th derivative of p with respect to the main variable of p.
Definition at line 104 of file Derivative.h.
UnivariatePolynomial<C> carl::derivative | ( | const UnivariatePolynomial< C > & | p, |
Variable | v, | ||
std::size_t | n = 1 |
||
) |
Computes the n'th derivative of p with respect to v.
Definition at line 125 of file Derivative.h.
|
inline |
UnivariatePolynomial<Coeff> carl::discriminant | ( | const UnivariatePolynomial< Coeff > & | p, |
SubresultantStrategy | strategy = SubresultantStrategy::Default |
||
) |
|
inline |
Divide two integers.
Asserts that the remainder is zero.
a | First argument. |
b | Second argument. |
Definition at line 466 of file operations.h.
|
inline |
Divide two fractions.
a | First argument. |
b | Second argument. |
Definition at line 455 of file operations.h.
|
inline |
Implements the division which assumes that there is no remainder.
_lhs | |
_rhs |
Definition at line 1476 of file Interval.h.
|
inline |
Divide two fractions.
a | First argument. |
b | Second argument. |
Definition at line 479 of file operations.h.
|
inline |
Divide two integers.
Asserts that the remainder is zero.
a | First argument. |
b | Second argument. |
Definition at line 490 of file operations.h.
Definition at line 141 of file operations.h.
|
inline |
Divide two integers.
Asserts that the remainder is zero. Stores the result in the first argument.
a | First argument. |
b | Second argument. |
Definition at line 491 of file operations.h.
|
inline |
Divide two fractions.
Stores the result in the first argument.
a | First argument. |
b | Second argument. |
Definition at line 478 of file operations.h.
|
inline |
Divide two integers.
Asserts that the remainder is zero. Stores the result in the first argument.
a | First argument. |
b | Second argument. |
Definition at line 515 of file operations.h.
|
inline |
Divide two integers.
Asserts that the remainder is zero. Stores the result in the first argument.
a | First argument. |
b | Second argument. |
Definition at line 503 of file operations.h.
|
inline |
Definition at line 326 of file operations.h.
|
inline |
DivisionResult<MultivariatePolynomial<Coeff,Ordering,Policies> > carl::divide | ( | const MultivariatePolynomial< Coeff, Ordering, Policies > & | dividend, |
const MultivariatePolynomial< Coeff, Ordering, Policies > & | divisor | ||
) |
Calculating the quotient and the remainder, such that for a given polynomial p we have p = divisor * quotient + remainder.
divisor | Another polynomial |
Definition at line 121 of file Division.h.
MultivariatePolynomial<Coeff,Ordering,Policies> carl::divide | ( | const MultivariatePolynomial< Coeff, Ordering, Policies > & | p, |
const Coeff & | divisor | ||
) |
Divides the polynomial by the given coefficient.
Applies if the coefficients are from a field.
divisor |
Definition at line 52 of file Division.h.
DivisionResult<UnivariatePolynomial<Coeff> > carl::divide | ( | const UnivariatePolynomial< Coeff > & | dividend, |
const UnivariatePolynomial< Coeff > & | divisor | ||
) |
Divides the polynomial by another polynomial.
dividend | Dividend. |
divisor | Divisor. |
Definition at line 194 of file Division.h.
DivisionResult<UnivariatePolynomial<Coeff> > carl::divide | ( | const UnivariatePolynomial< Coeff > & | p, |
const Coeff & | divisor | ||
) |
DivisionResult<UnivariatePolynomial<Coeff> > carl::divide | ( | const UnivariatePolynomial< Coeff > & | p, |
const typename UnderlyingNumberType< Coeff >::type & | divisor | ||
) |
void carl::doNothing | ( | const T & | , |
const T & | |||
) |
void carl::eliminate_root | ( | UnivariatePolynomial< Coeff > & | p, |
const Coeff & | root | ||
) |
Reduces the polynomial such that the given root is not a root anymore.
The reduction is achieved by removing the linear factor (mainVar - root) from the polynomial, possibly multiple times.
This method assumes that the given root is an actual real root of this polynomial. If this is not the case, i.e. evaluate(root) != 0
, the polynomial will contain meaningless garbage.
p | The polynomial. |
root | Root to be eliminated. |
Definition at line 36 of file RootElimination.h.
void carl::eliminate_zero_root | ( | UnivariatePolynomial< Coeff > & | p | ) |
Reduces the given polynomial such that zero is not a root anymore.
Is functionally equivalent to eliminate_root(0), but faster.
Definition at line 14 of file RootElimination.h.
std::pair<std::vector<BasicConstraint<Poly> >, Variable> carl::encode_as_constraints | ( | const MultivariateRoot< Poly > & | f, |
Assignment< typename VariableComparison< Poly >::RAN > | ass, | ||
EncodingCache< Poly > | cache | ||
) |
Definition at line 48 of file Encoding.h.
std::pair<std::vector<BasicConstraint<Poly> >, BasicConstraint<Poly> > carl::encode_as_constraints | ( | const VariableComparison< Poly > & | f, |
const Assignment< typename VariableComparison< Poly >::RAN > & | ass, | ||
EncodingCache< Poly > | cache | ||
) |
void carl::encode_as_constraints_simple | ( | const MultivariateRoot< Poly > & | f, |
Assignment< typename VariableComparison< Poly >::RAN > | ass, | ||
Variable | var, | ||
std::vector< BasicConstraint< Poly >> & | out | ||
) |
Definition at line 10 of file Encoding.h.
void carl::encode_as_constraints_thom | ( | const MultivariateRoot< Poly > & | f, |
Assignment< typename VariableComparison< Poly >::RAN > | ass, | ||
Variable | var, | ||
std::vector< BasicConstraint< Poly >> & | out | ||
) |
Definition at line 28 of file Encoding.h.
auto carl::evaluate | ( | const BasicConstraint< ContextPolynomial< Coeff, Ordering, Policies >> & | p, |
const Assignment< typename ContextPolynomial< Coeff, Ordering, Policies >::RootType > & | a | ||
) |
boost::tribool carl::evaluate | ( | const BasicConstraint< MultivariatePolynomial< Number >> & | c, |
const Assignment< IntRepRealAlgebraicNumber< Number >> & | m, | ||
bool | refine_model = true , |
||
bool | use_root_bounds = true |
||
) |
|
inline |
bool carl::evaluate | ( | const BasicConstraint< Poly > & | c, |
const Assignment< Number > & | m | ||
) |
Definition at line 10 of file Evaluation.h.
bool carl::evaluate | ( | const BasicConstraint< Poly > & | c, |
std::map< Variable, RealAlgebraicNumberThom< Number >> & | m | ||
) |
Definition at line 137 of file ran_thom.h.
auto carl::evaluate | ( | const ContextPolynomial< Coeff, Ordering, Policies > & | p, |
const Assignment< typename ContextPolynomial< Coeff, Ordering, Policies >::RootType > & | a | ||
) |
Subst carl::evaluate | ( | const FactorizedPolynomial< Coeff > & | p, |
const std::map< Variable, Subst > & | substitutions | ||
) |
Like substitute, but expects substitutions for all variables.
Definition at line 13 of file evaluation.h.
Interval<Numeric> carl::evaluate | ( | const FactorizedPolynomial< P > & | p, |
const std::map< Variable, Interval< Numeric >> & | map | ||
) |
|
inline |
SubstitutionType carl::evaluate | ( | const MultivariatePolynomial< C, O, P > & | p, |
const std::map< Variable, SubstitutionType > & | substitutions | ||
) |
Like substitute, but expects substitutions for all variables.
Definition at line 37 of file Evaluation.h.
|
inline |
Number carl::evaluate | ( | const MultivariatePolynomial< Number > & | p, |
std::map< Variable, RealAlgebraicNumberThom< Number >> & | m | ||
) |
Definition at line 88 of file ran_thom.h.
std::optional<typename MultivariateRoot<Poly>::RAN> carl::evaluate | ( | const MultivariateRoot< Poly > & | mr, |
const carl::Assignment< typename MultivariateRoot< Poly >::RAN > & | m | ||
) |
Return the emerging algebraic real after pluggin in a subpoint to replace all variables with algebraic reals that are not the root-variable "_z".
m | must contain algebraic real assignments for all variables that are not "_z". |
Definition at line 152 of file MultivariateRoot.h.
std::pair<typename SqrtEx<Poly>::Rational, bool> carl::evaluate | ( | const SqrtEx< Poly > & | sqrt_ex, |
const std::map< Variable, typename SqrtEx< Poly >::Rational > & | eval_map, | ||
int | rounding | ||
) |
Evaluates the square root expression.
Might be not exact when a square root is rounded.
Poly |
sqrt_ex | The square root expression to be evaluated. |
eval_map | Assignments for all variables. |
rounding | -1 if square root should be rounded downwards, 1 if the square root should be rounded upwards, 0 if double precision is fine. |
Definition at line 17 of file Evaluation.h.
ModelValue< Rational, Poly > carl::evaluate | ( | const T & | t, |
const Model< Rational, Poly > & | m | ||
) |
Evaluates a given expression t over a model.
The result is always a ModelValue, though it may be a ModelSubstitution in some cases.
Definition at line 47 of file ModelEvaluation.h.
|
inline |
|
inline |
Definition at line 107 of file Relation.h.
Coeff carl::evaluate | ( | const UnivariatePolynomial< Coeff > & | p, |
const Coeff & | value | ||
) |
|
inline |
boost::tribool carl::evaluate | ( | const VariableComparison< Poly > & | f, |
const Assignment< typename VariableComparison< Poly >::RAN > & | a, | ||
bool | evaluate_non_welldef = false |
||
) |
std::optional<IntRepRealAlgebraicNumber<Number> > carl::evaluate | ( | MultivariatePolynomial< Number > | p, |
const Assignment< IntRepRealAlgebraicNumber< Number >> & | m, | ||
bool | refine_model = true |
||
) |
Evaluate the given polynomial with the given values for the variables.
Asserts that all variables of p have an assignment in m and that m has no additional assignments.
Returns std::nullopt if some unassigned variables are still contained in p after plugging in m.
p | Polynomial to be evaluated |
m | Variable assignment |
Definition at line 30 of file Evaluation.h.
Definition at line 86 of file Relation.h.
void carl::evaluate_inplace | ( | ModelValue< Rational, Poly > & | res, |
BVConstraint & | bvc, | ||
const Model< Rational, Poly > & | m | ||
) |
Evaluates a bitvector constraint to a ModelValue over a Model.
Definition at line 59 of file ModelEvaluation_Bitvector.h.
void carl::evaluate_inplace | ( | ModelValue< Rational, Poly > & | res, |
BVTerm & | bvt, | ||
const Model< Rational, Poly > & | m | ||
) |
Evaluates a bitvector term to a ModelValue over a Model.
Definition at line 45 of file ModelEvaluation_Bitvector.h.
void carl::evaluate_inplace | ( | ModelValue< Rational, Poly > & | res, |
const UEquality & | ue, | ||
const Model< Rational, Poly > & | m | ||
) |
Evaluates a uninterpreted variable to a ModelValue over a Model.
Definition at line 50 of file ModelEvaluation_Uninterpreted.h.
void carl::evaluate_inplace | ( | ModelValue< Rational, Poly > & | res, |
const UFInstance & | ufi, | ||
const Model< Rational, Poly > & | m | ||
) |
Evaluates a uninterpreted function instance to a ModelValue over a Model.
Definition at line 24 of file ModelEvaluation_Uninterpreted.h.
void carl::evaluate_inplace | ( | ModelValue< Rational, Poly > & | res, |
const UVariable & | uv, | ||
const Model< Rational, Poly > & | m | ||
) |
Evaluates a uninterpreted variable to a ModelValue over a Model.
Definition at line 14 of file ModelEvaluation_Uninterpreted.h.
void carl::evaluate_inplace | ( | ModelValue< Rational, Poly > & | res, |
Constraint< Poly > & | c, | ||
const Model< Rational, Poly > & | m | ||
) |
Evaluates a constraint to a ModelValue over a Model.
If evaluation can not be done for some variables, the result may actually be a Constraint again.
Definition at line 25 of file ModelEvaluation_Constraint.h.
void carl::evaluate_inplace | ( | ModelValue< Rational, Poly > & | res, |
Formula< Poly > & | f, | ||
const Model< Rational, Poly > & | m | ||
) |
Evaluates a formula to a ModelValue over a Model.
If evaluation can not be done for some variables, the result may actually be a ModelPolynomialSubstitution.
Definition at line 199 of file ModelEvaluation_Formula.h.
void carl::evaluate_inplace | ( | ModelValue< Rational, Poly > & | res, |
MultivariateRoot< Poly > & | mvr, | ||
const Model< Rational, Poly > & | m | ||
) |
Evaluates a MultivariateRoot to a ModelValue over a Model.
If evaluation can not be done for some variables, the result may actually be a ModelMVRootSubstitution.
Definition at line 31 of file ModelEvaluation_MVRoot.h.
void carl::evaluate_inplace | ( | ModelValue< Rational, Poly > & | res, |
Poly & | p, | ||
const Model< Rational, Poly > & | m | ||
) |
Evaluates a polynomial to a ModelValue over a Model.
If evaluation can not be done for some variables, the result may actually be a ModelPolynomialSubstitution.
Definition at line 44 of file ModelEvaluation_Polynomial.h.
RealAlgebraicNumber<Number> carl::evaluateTE | ( | const MultivariatePolynomial< Number > & | p, |
std::map< Variable, RealAlgebraicNumber< Number >> & | m | ||
) |
Interval<Number> carl::exp | ( | const Interval< Number > & | i | ) |
Definition at line 10 of file Exponential.h.
void carl::exp_assign | ( | Interval< Number > & | i | ) |
UnivariatePolynomial<Coeff> carl::extended_gcd | ( | const UnivariatePolynomial< Coeff > & | a, |
const UnivariatePolynomial< Coeff > & | b, | ||
UnivariatePolynomial< Coeff > & | s, | ||
UnivariatePolynomial< Coeff > & | t | ||
) |
Calculates the extended greatest common divisor g
of two polynomials.
The output polynomials s
and t
are computed such that .
a | First polynomial. |
b | Second polynomial. |
s | First output polynomial. |
t | Second output polynomial. |
gcd(a,b)
Definition at line 39 of file GCD_univariate.h.
T carl::extended_gcd_integer | ( | T | a, |
T | b, | ||
T & | s, | ||
T & | t | ||
) |
Factors<MultivariatePolynomial<C,O,P> > carl::factorization | ( | const MultivariatePolynomial< C, O, P > & | p, |
bool | includeConstants = true |
||
) |
Try to factorize a multivariate polynomial.
Uses CoCoALib and GiNaC, if available, depending on the coefficient type of the polynomial.
Definition at line 31 of file Factorization.h.
FactorMap<Coeff> carl::factorization | ( | const UnivariatePolynomial< Coeff > & | p | ) |
Definition at line 325 of file Factorization_univariate.h.
bool carl::factorizationsEqual | ( | const Factorization< P > & | _factorizationA, |
const Factorization< P > & | _factorizationB | ||
) |
std::string carl::factorizationToString | ( | const Factorization< P > & | _factorization, |
bool | _infix = true , |
||
bool | _friendlyVarNames = true |
||
) |
bool carl::fits_within | ( | const T2 & | t | ) |
Definition at line 356 of file typetraits.h.
|
inline |
Round down an integer.
n | An integer. |
Definition at line 282 of file operations.h.
|
inline |
Round down a fraction.
n | A fraction. |
Definition at line 273 of file operations.h.
Method which returns the next smaller integer of this number or the number itself, if it is already an integer.
_in | Number. |
Definition at line 1523 of file Interval.h.
Number carl::floor | ( | const IntRepRealAlgebraicNumber< Number > & | n | ) |
|
inline |
|
inline |
Definition at line 285 of file operations.h.
Number carl::floor | ( | const RealAlgebraicNumberThom< Number > & | n | ) |
Definition at line 170 of file ran_thom.h.
|
inline |
Basic Operators.
The following functions implement simple operations on the given numbers.
Definition at line 121 of file operations.h.
|
inline |
_type | The formula type to get the string representation for. |
Definition at line 63 of file FormulaContent.h.
auto carl::free_variables | ( | const Formula< Poly > & | f | ) |
|
inlinenoexcept |
|
inline |
|
inlinenoexcept |
Definition at line 192 of file VariablePool.h.
|
inline |
|
inlinenoexcept |
Definition at line 204 of file VariablePool.h.
|
inline |
|
inlinenoexcept |
Definition at line 198 of file VariablePool.h.
|
inline |
|
inlinenoexcept |
|
inline |
|
inline |
Definition at line 182 of file VariablePool.h.
|
inlinenoexcept |
|
inline |
|
inline |
Definition at line 153 of file operations.h.
|
inline |
Definition at line 148 of file operations.h.
|
inline |
Calculate the greatest common divisor of two integers.
a | First argument. |
b | Second argument. |
Definition at line 310 of file operations.h.
|
inline |
Calculate the greatest common divisor of two fractions.
Asserts that the arguments are integral.
a | First argument. |
b | Second argument. |
Definition at line 352 of file operations.h.
Monomial::Arg carl::gcd | ( | const Monomial::Arg & | a, |
const MultivariatePolynomial< C, O, P > & | b | ||
) |
Monomial::Arg carl::gcd | ( | const Monomial::Arg & | lhs, |
const Monomial::Arg & | rhs | ||
) |
Calculates the least common multiple of two monomial pointers.
If both are valid objects, the gcd of both is calculated. If only one is a valid object, this one is returned. If both are invalid objects, an empty monomial is returned.
lhs | First monomial. |
rhs | Second monomial. |
Definition at line 7 of file GCD_Monomial.cpp.
|
inline |
Definition at line 311 of file operations.h.
|
inline |
Definition at line 299 of file operations.h.
Monomial::Arg carl::gcd | ( | const MultivariatePolynomial< C, O, P > & | a, |
const Monomial::Arg & | b | ||
) |
MultivariatePolynomial< C, O, P > carl::gcd | ( | const MultivariatePolynomial< C, O, P > & | a, |
const MultivariatePolynomial< C, O, P > & | b | ||
) |
Term<C> carl::gcd | ( | const MultivariatePolynomial< C, O, P > & | a, |
const Term< C > & | b | ||
) |
Term<C> carl::gcd | ( | const Term< C > & | a, |
const MultivariatePolynomial< C, O, P > & | b | ||
) |
Term<Coeff> carl::gcd | ( | const Term< Coeff > & | t1, |
const Term< Coeff > & | t2 | ||
) |
Calculates the gcd of (t1, t2).
If t1 or t2 is zero, undefined.
t1 | first term |
t2 | second term |
Definition at line 17 of file GCD_Term.h.
UnivariatePolynomial<Coeff> carl::gcd | ( | const UnivariatePolynomial< Coeff > & | a, |
const UnivariatePolynomial< Coeff > & | b | ||
) |
Calculates the greatest common divisor of two polynomials.
a | First polynomial. |
b | Second polynomial. |
gcd(a,b)
Definition at line 104 of file GCD_univariate.h.
|
inline |
Calculate the greatest common divisor of two integers.
Stores the result in the first argument.
a | First argument. |
b | Second argument. |
Definition at line 321 of file operations.h.
|
inline |
Calculate the greatest common divisor of two fractions.
Stores the result in the first argument. Asserts that the arguments are integral.
a | First argument. |
b | Second argument. |
Definition at line 340 of file operations.h.
|
inline |
Calculate the greatest common divisor of two integers.
Stores the result in the first argument.
a | First argument. |
b | Second argument. |
Definition at line 344 of file operations.h.
|
inline |
Calculate the greatest common divisor of two integers.
Stores the result in the first argument.
a | First argument. |
b | Second argument. |
Definition at line 332 of file operations.h.
UnivariatePolynomial<Coeff> carl::gcd_recursive | ( | const UnivariatePolynomial< Coeff > & | a, |
const UnivariatePolynomial< Coeff > & | b | ||
) |
Definition at line 12 of file GCD_univariate.h.
std::optional<std::pair<Variable, typename Pol::NumberType> > carl::get_assignment | ( | const BasicConstraint< Pol > & | c | ) |
Definition at line 38 of file Substitution.h.
auto carl::get_assignment | ( | const Constraint< Pol > & | c | ) |
|
inline |
Extract the denominator from a fraction.
n | Fraction. |
Definition at line 69 of file operations.h.
|
inline |
|
inline |
Definition at line 75 of file operations.h.
|
inline |
Definition at line 79 of file operations.h.
|
inline |
Extract the numerator from a fraction.
n | Fraction. |
Definition at line 60 of file operations.h.
|
inline |
|
inline |
Definition at line 67 of file operations.h.
|
inline |
Definition at line 71 of file operations.h.
std::optional<Assignment<typename Poly::RootType> > carl::get_ran_assignment | ( | const carlVariables & | vars, |
const Model< Rational, Poly > & | model | ||
) |
Assignment<typename Poly::RootType> carl::get_ran_assignment | ( | const Model< Rational, Poly > & | model | ) |
Definition at line 88 of file Assignment.h.
Definition at line 36 of file BoundType.h.
std::optional<std::pair<Variable, Pol> > carl::get_substitution | ( | const BasicConstraint< Pol > & | c, |
bool | _negated = false , |
||
Variable | _exclude = carl::Variable::NO_VARIABLE , |
||
std::optional< VarsInfo< Pol >> | var_info = std::nullopt |
||
) |
If this constraint represents a substitution (equation, where at least one variable occurs only linearly), this method detects a (there could be various possibilities) corresponding substitution variable and term.
_substitutionVariable | Is set to the substitution variable, if this constraint represents a substitution. |
_substitutionTerm | Is set to the substitution term, if this constraint represents a substitution. |
Definition at line 18 of file Substitution.h.
std::optional<std::pair<Variable, Pol> > carl::get_substitution | ( | const Constraint< Pol > & | c, |
bool | _negated = false , |
||
Variable | _exclude = carl::Variable::NO_VARIABLE |
||
) |
Definition at line 31 of file BoundType.h.
void carl::getDefaultModel | ( | Model< Rational, Poly > & | _defaultModel, |
const BVTerm & | _constraint, | ||
bool | _overwrite = true , |
||
size_t | _seed = 0 |
||
) |
void carl::getDefaultModel | ( | Model< Rational, Poly > & | _defaultModel, |
const Constraint< Poly > & | _constraint, | ||
bool | _overwrite = true , |
||
size_t | _seed = 0 |
||
) |
void carl::getDefaultModel | ( | Model< Rational, Poly > & | _defaultModel, |
const Formula< Poly > & | _formula, | ||
bool | _overwrite = true , |
||
size_t | _seed = 0 |
||
) |
void carl::getDefaultModel | ( | Model< Rational, Poly > & | _defaultModel, |
const UEquality & | _constraint, | ||
bool | _overwrite = true , |
||
size_t | _seed = 0 |
||
) |
bool carl::getRationalAssignmentsFromModel | ( | const Model< Rational, Poly > & | _model, |
std::map< Variable, Rational > & | _rationalAssigns | ||
) |
Obtains all assignments which can be transformed to rationals and stores them in the passed map.
_model | The model from which to obtain the rational assignments. |
_rationalAssigns | The map to store the rational assignments in. |
|
inline |
Gets the sort specified by the arguments.
Forwards to SortManager::getSort().
Definition at line 313 of file SortManager.h.
std::vector<MultivariatePolynomial<C,O,P> > carl::groebner_basis | ( | const std::vector< MultivariatePolynomial< C, O, P >> & | polys | ) |
Definition at line 11 of file Groebner.h.
|
static |
carl::has_method_struct | ( | normalize | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Add a value to the given hash seed.
This method is a copy of boost::hash_combine(). It is reimplemented here to avoid including all of boost/functional/hash.hpp for this single line of code.
Definition at line 14 of file hash.h.
|
inline |
|
inline |
|
inline |
Returns the highest power of two below n.
Can also be seen as the highest bit set in n.
n |
Definition at line 192 of file operations.h.
Coeff carl::hirstMaceyBound | ( | const UnivariatePolynomial< Coeff > & | p | ) |
|
inline |
The routine for initializing the carl library.
Which is called automatically by including this header. TODO prevent outside access.
Definition at line 31 of file initialize.h.
|
inline |
Method to ensure that upon inclusion, init() is called exactly once.
TODO prevent outside access.
Definition at line 49 of file initialize.h.
|
staticnoexcept |
|
inline |
|
inline |
|
constexpr |
Returns an enum value that is (most probably) not a valid enum value.
This can be used to check whether methods that take enums properly handle invalid values.
Definition at line 13 of file enum_util.h.
|
inline |
Definition at line 57 of file BVCompareRelation.h.
Inverts the given relation symbol.
Definition at line 40 of file Relation.h.
|
inline |
Definition at line 8 of file Functions.h.
std::vector<MultivariatePolynomial<C,O,P> > carl::irreducible_factors | ( | const MultivariatePolynomial< C, O, P > & | p, |
bool | includeConstants = true |
||
) |
Try to factorize a multivariate polynomial and return the irreducible factors (without multiplicities).
Uses CoCoALib and GiNaC, if available, depending on the coefficient type of the polynomial.
Definition at line 72 of file Factorization.h.
|
inline |
bool carl::is_bound | ( | const BasicConstraint< Pol > & | constr | ) |
bool carl::is_bound | ( | const Constraint< Pol > & | constr, |
bool | negated = false |
||
) |
|
inline |
Definition at line 107 of file ContextPolynomial.h.
|
inline |
bool carl::is_constant | ( | const MultivariatePolynomial< Coeff, Ordering, Policies > & | p | ) |
bool carl::is_constant | ( | const UnivariatePolynomial< Coeff > & | p | ) |
|
inline |
Check if a number is integral.
As cln::cl_I are always integral, this method returns true.
Definition at line 78 of file operations.h.
|
inline |
Check if a fraction is integral.
n | A fraction. |
Definition at line 87 of file operations.h.
|
inline |
|
inline |
|
inline |
Definition at line 1445 of file Interval.h.
|
inline |
|
inline |
Definition at line 83 of file operations.h.
|
inline |
Definition at line 87 of file operations.h.
|
inline |
Definition at line 58 of file operations.h.
|
inline |
Definition at line 63 of file operations.h.
|
inline |
Definition at line 117 of file ContextPolynomial.h.
|
inline |
bool carl::is_linear | ( | const MultivariatePolynomial< Coeff, Ordering, Policies > & | p | ) |
bool carl::is_linear | ( | const UnivariatePolynomial< Coeff > & | p | ) |
bool carl::is_lower_bound | ( | const BasicConstraint< Pol > & | constr | ) |
bool carl::is_lower_bound | ( | const Constraint< Pol > & | constr | ) |
|
inline |
Definition at line 47 of file operations.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 40 of file operations_generic.h.
|
inline |
Definition at line 35 of file operations.h.
|
inline |
|
inline |
Definition at line 54 of file operations.h.
|
inline |
|
inline |
bool carl::is_one | ( | const FactorizedPolynomial< P > & | fp | ) |
Definition at line 760 of file FactorizedPolynomial.h.
bool carl::is_one | ( | const GFNumber< IntegerT > & | _in | ) |
bool carl::is_one | ( | const Interval< Number > & | i | ) |
Check if this interval is a point-interval containing 1.
Definition at line 1462 of file Interval.h.
|
inline |
|
inline |
bool carl::is_one | ( | const MultivariatePolynomial< C, O, P > & | p | ) |
|
inline |
Definition at line 25 of file operations_generic.h.
bool carl::is_one | ( | const UnivariatePolynomial< Coefficient > & | p | ) |
Checks if the polynomial is equal to one.
Definition at line 817 of file UnivariatePolynomial.h.
|
inline |
Definition at line 39 of file operations.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 30 of file operations_generic.h.
|
inline |
Definition at line 31 of file operations.h.
bool carl::is_root_of | ( | const UnivariatePolynomial< Coeff > & | p, |
const Coeff & | value | ||
) |
Definition at line 62 of file Evaluation.h.
Number carl::is_root_of | ( | const UnivariatePolynomial< Number > & | p, |
const RAN & | value | ||
) |
|
inline |
bool carl::is_trivial | ( | const Factors< MultivariatePolynomial< C, O, P >> & | f | ) |
bool carl::is_upper_bound | ( | const BasicConstraint< Pol > & | constr | ) |
bool carl::is_upper_bound | ( | const Constraint< Pol > & | constr | ) |
|
inline |
Definition at line 82 of file Relation.h.
|
inline |
Definition at line 23 of file operations.h.
|
inline |
Definition at line 27 of file operations.h.
|
inline |
bool carl::is_zero | ( | const FactorizedPolynomial< P > & | fp | ) |
Definition at line 768 of file FactorizedPolynomial.h.
|
inline |
bool carl::is_zero | ( | const GFNumber< IntegerT > & | _in | ) |
bool carl::is_zero | ( | const Interval< Number > & | i | ) |
Check if this interval is a point-interval containing 0.
Definition at line 1453 of file Interval.h.
|
inline |
|
inline |
|
inline |
Informational functions.
The following functions return informations about the given numbers.
Definition at line 35 of file operations.h.
bool carl::is_zero | ( | const MultivariatePolynomial< C, O, P > & | p | ) |
|
inline |
Definition at line 20 of file operations_generic.h.
bool carl::is_zero | ( | const UnivariatePolynomial< Coefficient > & | p | ) |
Checks if the polynomial is equal to zero.
Definition at line 808 of file UnivariatePolynomial.h.
|
inline |
Informational functions.
The following functions return informations about the given numbers.
Definition at line 27 of file operations.h.
|
inline |
|
inline |
|
inline |
|
inline |
bool carl::isPartOf | ( | const std::map< Variable, Rational > & | _assignment, |
const Model< Rational, Poly > & | _model | ||
) |
Coeff carl::lagrangeBound | ( | const UnivariatePolynomial< Coeff > & | p | ) |
Definition at line 55 of file RootBounds.h.
Coeff carl::lagrangeNegativeUpperBound | ( | const UnivariatePolynomial< Coeff > & | p | ) |
Computes an upper bound on the value of the negative real roots of the given univariate polynomial.
Note that the positive roots of P(-x) are the negative roots of P(x).
Definition at line 127 of file RootBounds.h.
Coeff carl::lagrangePositiveLowerBound | ( | const UnivariatePolynomial< Coeff > & | p | ) |
Computes a lower bound on the value of the positive real roots of the given univariate polynomial.
Let . Then . Thus for any b it holds , that is, if b is an upper bound of the positive real roots of Q, then 1/b is a lower bound on the positive real roots of P. Note that the coefficients of Q are the ones of P in reverse order.
Definition at line 114 of file RootBounds.h.
Coeff carl::lagrangePositiveUpperBound | ( | const UnivariatePolynomial< Coeff > & | p | ) |
Definition at line 84 of file RootBounds.h.
std::pair<MultivariatePolynomial<C,O,P>,MultivariatePolynomial<C,O,P> > carl::lazyDiv | ( | const MultivariatePolynomial< C, O, P > & | _polyA, |
const MultivariatePolynomial< C, O, P > & | _polyB | ||
) |
|
inline |
Calculate the least common multiple of two integers.
a | First argument. |
b | Second argument. |
Definition at line 362 of file operations.h.
|
inline |
Calculate the least common multiple of two fractions.
Asserts that the arguments are integral.
a | First argument. |
b | Second argument. |
Definition at line 373 of file operations.h.
|
inline |
Definition at line 349 of file operations.h.
|
inline |
Definition at line 305 of file operations.h.
MultivariatePolynomial<C,O,P> carl::lcm | ( | const MultivariatePolynomial< C, O, P > & | a, |
const MultivariatePolynomial< C, O, P > & | b | ||
) |
|
inline |
|
inline |
Interval<Number> carl::log | ( | const Interval< Number > & | i | ) |
Definition at line 22 of file Exponential.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void carl::log_assign | ( | Interval< Number > & | i | ) |
|
inline |
Calculate the remainder of the integer division.
a | First argument. |
b | Second argument. |
Definition at line 445 of file operations.h.
|
inline |
Definition at line 131 of file operations.h.
int carl::multivariateTarskiQuery | ( | const MultivariatePolynomial< Number > & | Q, |
const MultiplicationTable< Number > & | table | ||
) |
Definition at line 18 of file MultivariateTarskiQuery.h.
Creates a new value for the given sort.
sort | The sort to create a new value for. |
Definition at line 68 of file SortValueManager.h.
|
inline |
Gets the uninterpreted function instance with the given name, domain, arguments and codomain.
uf | The underlying function of the uninterpreted function instance to get. |
args | The arguments of the uninterpreted function instance to get. |
Definition at line 242 of file UFInstanceManager.h.
|
inline |
Gets the uninterpreted function instance with the given name, domain, arguments and codomain.
uf | The underlying function of the uninterpreted function instance to get. |
args | The arguments of the uninterpreted function instance to get. |
Definition at line 232 of file UFInstanceManager.h.
|
inline |
Gets the uninterpreted function with the given name, domain, arguments and codomain.
name | The name of the uninterpreted function of the uninterpreted function to get. |
domain | The domain of the uninterpreted function of the uninterpreted function to get. |
codomain | The codomain of the uninterpreted function of the uninterpreted function to get. |
Definition at line 198 of file UFManager.h.
bool carl::operator!= | ( | const BasicConstraint< P > & | lhs, |
const BasicConstraint< P > & | rhs | ||
) |
Definition at line 112 of file BasicConstraint.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 144 of file MultivariatePolynomial_operators.h.
bool carl::operator!= | ( | const Constraint< P > & | lhs, |
const Constraint< P > & | rhs | ||
) |
Definition at line 293 of file Constraint.h.
|
inline |
Checks if the two arguments are not equal.
_lhs | First argument. |
_rhs | Second argument. |
_lhs != _rhs
|
inline |
Checks if the two arguments are not equal.
_lhs | First argument. |
_rhs | Second argument. |
_lhs != _rhs
Definition at line 827 of file FactorizedPolynomial.h.
|
inline |
Operator for the comparison of two intervals.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 119 of file operators.h.
|
inline |
Definition at line 123 of file operators.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 522 of file Monomial.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 136 of file MultivariatePolynomial_operators.h.
|
inline |
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 526 of file Monomial.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 128 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 120 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 112 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 116 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 153 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 161 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 124 of file MultivariatePolynomial_operators.h.
bool carl::operator!= | ( | const N & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 596 of file ThomEncoding.h.
|
inline |
Definition at line 127 of file operators.h.
bool carl::operator!= | ( | const Number & | lhs, |
const RAN & | rhs | ||
) |
Definition at line 55 of file Operations.h.
bool carl::operator!= | ( | const RAN & | lhs, |
const Number & | rhs | ||
) |
bool carl::operator!= | ( | const RAN & | lhs, |
const RAN & | rhs | ||
) |
bool carl::operator!= | ( | const RationalFunction< Pol, AS > & | lhs, |
const RationalFunction< Pol, AS > & | rhs | ||
) |
Definition at line 565 of file RationalFunction.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 132 of file MultivariatePolynomial_operators.h.
|
inline |
bool carl::operator!= | ( | const ThomEncoding< N > & | lhs, |
const N & | rhs | ||
) |
Definition at line 583 of file ThomEncoding.h.
bool carl::operator!= | ( | const ThomEncoding< N > & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 569 of file ThomEncoding.h.
|
inline |
Checks if the two arguments are not equal.
_lhs | First argument. |
_rhs | Second argument. |
_lhs != _rhs
Definition at line 833 of file FactorizedPolynomial.h.
lhs | The left hand side. |
rhs | The right hand side. |
Definition at line 123 of file UEquality.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 149 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 157 of file MultivariatePolynomial_operators.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 530 of file Monomial.h.
|
inline |
Checks if the two arguments are not equal.
lhs | First argument. |
rhs | Second argument. |
lhs != rhs
Definition at line 140 of file MultivariatePolynomial_operators.h.
RationalFunction<Pol, AS> carl::operator* | ( | carl::sint | lhs, |
const RationalFunction< Pol, AS > & | rhs | ||
) |
Definition at line 514 of file RationalFunction.h.
|
inline |
Perform a multiplication involving a polynomial using operator*=()
.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 654 of file MultivariatePolynomial_operators.h.
|
inline |
FactorizedPolynomial<P> carl::operator* | ( | const FactorizedPolynomial< P > & | _lhs, |
const FactorizedPolynomial< P > & | _rhs | ||
) |
Perform a multiplication involving a polynomial.
_lhs | Left hand side. |
_rhs | Right hand side. |
_lhs * _rhs
FactorizedPolynomial<P> carl::operator* | ( | const FactorizedPolynomial< P > & | _lhs, |
const typename FactorizedPolynomial< P >::CoeffType & | _rhs | ||
) |
Perform a multiplication involving a polynomial.
_lhs | Left hand side. |
_rhs | Right hand side. |
_lhs * _rhs
|
inline |
Operator for the multiplication of two intervals.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 386 of file operators.h.
|
inline |
Operator for the multiplication of an interval and a number.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 397 of file operators.h.
|
inline |
Monomial::Arg carl::operator* | ( | const Monomial::Arg & | lhs, |
const Monomial::Arg & | rhs | ||
) |
Perform a multiplication involving a monomial.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 260 of file Monomial.cpp.
|
inline |
Perform a multiplication involving a polynomial using operator*=()
.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 646 of file MultivariatePolynomial_operators.h.
|
inline |
Monomial::Arg carl::operator* | ( | const Monomial::Arg & | lhs, |
Variable | rhs | ||
) |
Perform a multiplication involving a monomial.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 309 of file Monomial.cpp.
|
inline |
Definition at line 526 of file operations.h.
|
inline |
Perform a multiplication involving a polynomial using operator*=()
.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 638 of file MultivariatePolynomial_operators.h.
|
inline |
Perform a multiplication involving a polynomial using operator*=()
.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 630 of file MultivariatePolynomial_operators.h.
|
inline |
Perform a multiplication involving a polynomial using operator*=()
.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 622 of file MultivariatePolynomial_operators.h.
|
inline |
Perform a multiplication involving a polynomial using operator*=()
.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 626 of file MultivariatePolynomial_operators.h.
|
inline |
Perform a multiplication involving a polynomial using operator*=()
.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 634 of file MultivariatePolynomial_operators.h.
|
inline |
Operator for the multiplication of an interval and a number.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 414 of file operators.h.
RationalFunction<Pol, AS> carl::operator* | ( | const RationalFunction< Pol, AS > & | lhs, |
carl::sint | rhs | ||
) |
Definition at line 509 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator* | ( | const RationalFunction< Pol, AS > & | lhs, |
const Monomial::Arg & | rhs | ||
) |
Definition at line 489 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator* | ( | const RationalFunction< Pol, AS > & | lhs, |
const Pol & | rhs | ||
) |
Definition at line 479 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator* | ( | const RationalFunction< Pol, AS > & | lhs, |
const RationalFunction< Pol, AS > & | rhs | ||
) |
Definition at line 474 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator* | ( | const RationalFunction< Pol, AS > & | lhs, |
const Term< typename Pol::CoeffType > & | rhs | ||
) |
Definition at line 484 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator* | ( | const RationalFunction< Pol, AS > & | lhs, |
const typename Pol::CoeffType & | rhs | ||
) |
Definition at line 499 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator* | ( | const RationalFunction< Pol, AS > & | lhs, |
Variable | rhs | ||
) |
Definition at line 494 of file RationalFunction.h.
|
inline |
Perform a multiplication involving a polynomial using operator*=()
.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 642 of file MultivariatePolynomial_operators.h.
|
inline |
Perform a multiplication involving a polynomial.
_lhs | Left hand side. |
_rhs | Right hand side. |
_lhs * _rhs
Definition at line 998 of file FactorizedPolynomial.h.
RationalFunction<Pol, AS> carl::operator* | ( | const typename Pol::CoeffType & | lhs, |
const RationalFunction< Pol, AS > & | rhs | ||
) |
Definition at line 504 of file RationalFunction.h.
|
inline |
Monomial::Arg carl::operator* | ( | Variable | lhs, |
const Monomial::Arg & | rhs | ||
) |
Perform a multiplication involving a monomial.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 338 of file Monomial.cpp.
|
inline |
Perform a multiplication involving a polynomial using operator*=()
.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 650 of file MultivariatePolynomial_operators.h.
Monomial::Arg carl::operator* | ( | Variable | lhs, |
Variable | rhs | ||
) |
Perform a multiplication involving a monomial.
lhs | Left hand side. |
rhs | Right hand side. |
lhs * rhs
Definition at line 342 of file Monomial.cpp.
|
inline |
Operator for the multiplication of an interval and a number with assignment.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 425 of file operators.h.
|
inline |
Operator for the multiplication of an interval and a number with assignment.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 437 of file operators.h.
Term<Coeff>& carl::operator*= | ( | Term< Coeff > & | lhs, |
const Monomial::Arg & | rhs | ||
) |
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 514 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 506 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 510 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 518 of file MultivariatePolynomial_operators.h.
FactorizedPolynomial<P> carl::operator+ | ( | const FactorizedPolynomial< P > & | _lhs, |
const FactorizedPolynomial< P > & | _rhs | ||
) |
Performs an addition involving a polynomial.
_lhs | First argument. |
_rhs | Second argument. |
_lhs + _rhs
FactorizedPolynomial<P> carl::operator+ | ( | const FactorizedPolynomial< P > & | _lhs, |
const typename FactorizedPolynomial< P >::CoeffType & | _rhs | ||
) |
Performs an addition involving a polynomial.
_lhs | First argument. |
_rhs | Second argument. |
_lhs + _rhs
|
inline |
Operator for the addition of two intervals.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 261 of file operators.h.
|
inline |
Operator for the addition of an interval and a number.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 272 of file operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 490 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 482 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 486 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 458 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 450 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 442 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 446 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 454 of file MultivariatePolynomial_operators.h.
ThomEncoding<N> carl::operator+ | ( | const N & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 599 of file ThomEncoding.h.
|
inline |
Operator for the addition of an interval and a number.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 283 of file operators.h.
RationalFunction<Pol, AS> carl::operator+ | ( | const RationalFunction< Pol, AS > & | lhs, |
const Monomial::Arg & | rhs | ||
) |
Definition at line 424 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator+ | ( | const RationalFunction< Pol, AS > & | lhs, |
const Pol & | rhs | ||
) |
Definition at line 414 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator+ | ( | const RationalFunction< Pol, AS > & | lhs, |
const RationalFunction< Pol, AS > & | rhs | ||
) |
Definition at line 409 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator+ | ( | const RationalFunction< Pol, AS > & | lhs, |
const Term< typename Pol::CoeffType > & | rhs | ||
) |
Definition at line 419 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator+ | ( | const RationalFunction< Pol, AS > & | lhs, |
const typename Pol::CoeffType & | rhs | ||
) |
Definition at line 434 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator+ | ( | const RationalFunction< Pol, AS > & | lhs, |
Variable | rhs | ||
) |
Definition at line 429 of file RationalFunction.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 478 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 470 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 462 of file MultivariatePolynomial_operators.h.
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 466 of file MultivariatePolynomial_operators.h.
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 474 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial.
_lhs | First argument. |
_rhs | Second argument. |
_lhs + _rhs
Definition at line 956 of file FactorizedPolynomial.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 502 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 494 of file MultivariatePolynomial_operators.h.
Performs an addition involving a polynomial using operator+=()
.
lhs | First argument. |
rhs | Second argument. |
lhs + rhs
Definition at line 498 of file MultivariatePolynomial_operators.h.
|
inline |
Operator for the addition of an interval and a number with assignment.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 295 of file operators.h.
|
inline |
Operator for the addition of an interval and a number with assignment.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 307 of file operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 604 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 596 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 600 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 608 of file MultivariatePolynomial_operators.h.
FactorizedPolynomial<P> carl::operator- | ( | const FactorizedPolynomial< P > & | _lhs, |
const FactorizedPolynomial< P > & | _rhs | ||
) |
Performs an subtraction involving a polynomial.
_lhs | First argument. |
_rhs | Second argument. |
_lhs - _rhs
FactorizedPolynomial<P> carl::operator- | ( | const FactorizedPolynomial< P > & | _lhs, |
const typename FactorizedPolynomial< P >::CoeffType & | _rhs | ||
) |
Performs an subtraction involving a polynomial.
_lhs | First argument. |
_rhs | Second argument. |
_lhs - _rhs
|
inline |
Operator for the subtraction of two intervals.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 329 of file operators.h.
|
inline |
Operator for the subtraction of an interval and a number.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 340 of file operators.h.
|
inline |
Unary minus.
rhs | The operand. |
Definition at line 318 of file operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 580 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 572 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 576 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 548 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 540 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 532 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 536 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 544 of file MultivariatePolynomial_operators.h.
|
inline |
Operator for the subtraction of an interval and a number.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 351 of file operators.h.
RationalFunction<Pol, AS> carl::operator- | ( | const RationalFunction< Pol, AS > & | lhs | ) |
Definition at line 439 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator- | ( | const RationalFunction< Pol, AS > & | lhs, |
const Monomial::Arg & | rhs | ||
) |
Definition at line 459 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator- | ( | const RationalFunction< Pol, AS > & | lhs, |
const Pol & | rhs | ||
) |
Definition at line 449 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator- | ( | const RationalFunction< Pol, AS > & | lhs, |
const RationalFunction< Pol, AS > & | rhs | ||
) |
Definition at line 444 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator- | ( | const RationalFunction< Pol, AS > & | lhs, |
const Term< typename Pol::CoeffType > & | rhs | ||
) |
Definition at line 454 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator- | ( | const RationalFunction< Pol, AS > & | lhs, |
const typename Pol::CoeffType & | rhs | ||
) |
Definition at line 469 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator- | ( | const RationalFunction< Pol, AS > & | lhs, |
Variable | rhs | ||
) |
Definition at line 464 of file RationalFunction.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 568 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 560 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 552 of file MultivariatePolynomial_operators.h.
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 556 of file MultivariatePolynomial_operators.h.
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 564 of file MultivariatePolynomial_operators.h.
|
inline |
Performs an subtraction involving a polynomial.
_lhs | First argument. |
_rhs | Second argument. |
_lhs - _rhs
Definition at line 977 of file FactorizedPolynomial.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 592 of file MultivariatePolynomial_operators.h.
|
inline |
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 584 of file MultivariatePolynomial_operators.h.
Performs a subtraction involving a polynomial using operator-=()
.
lhs | First argument. |
rhs | Second argument. |
lhs - rhs
Definition at line 588 of file MultivariatePolynomial_operators.h.
|
inline |
Operator for the subtraction of two intervals with assignment.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 362 of file operators.h.
|
inline |
Operator for the subtraction of an interval and a number with assignment.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 374 of file operators.h.
|
inline |
Divide two integers.
Discards the remainder of the division.
a | First argument. |
b | Second argument. |
Definition at line 538 of file operations.h.
|
inline |
Definition at line 542 of file operations.h.
|
inline |
Perform a multiplication involving a polynomial.
_lhs | Left hand side. |
_rhs | Right hand side. |
_lhs * _rhs
Definition at line 1004 of file FactorizedPolynomial.h.
|
inline |
Operator for the division of an interval and a number.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 453 of file operators.h.
|
inline |
|
inline |
|
inline |
|
inline |
Perform a division involving a polynomial.
lhs | Left hand side. |
rhs | Right hand side. |
lhs / rhs
Definition at line 612 of file MultivariatePolynomial.h.
MultivariatePolynomial<C,O,P> carl::operator/ | ( | const MultivariatePolynomial< C, O, P > & | lhs, |
const MultivariatePolynomial< C, O, P > & | rhs | ||
) |
lhs | Left hand side. |
rhs | Right hand side. |
lhs / rhs
Definition at line 242 of file Division.h.
RationalFunction<Pol, AS> carl::operator/ | ( | const RationalFunction< Pol, AS > & | lhs, |
const Monomial::Arg & | rhs | ||
) |
Definition at line 534 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator/ | ( | const RationalFunction< Pol, AS > & | lhs, |
const Pol & | rhs | ||
) |
Definition at line 524 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator/ | ( | const RationalFunction< Pol, AS > & | lhs, |
const RationalFunction< Pol, AS > & | rhs | ||
) |
Definition at line 519 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator/ | ( | const RationalFunction< Pol, AS > & | lhs, |
const Term< typename Pol::CoeffType > & | rhs | ||
) |
Definition at line 529 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator/ | ( | const RationalFunction< Pol, AS > & | lhs, |
const typename Pol::CoeffType & | rhs | ||
) |
Definition at line 544 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator/ | ( | const RationalFunction< Pol, AS > & | lhs, |
unsigned long | rhs | ||
) |
Definition at line 549 of file RationalFunction.h.
RationalFunction<Pol, AS> carl::operator/ | ( | const RationalFunction< Pol, AS > & | lhs, |
Variable | rhs | ||
) |
Definition at line 539 of file RationalFunction.h.
|
inline |
Operator for the division of an interval and a number with assignment.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 469 of file operators.h.
bool carl::operator< | ( | const BasicConstraint< P > & | lhs, |
const BasicConstraint< P > & | rhs | ||
) |
bool carl::operator< | ( | const BVConstraint & | lhs, |
const BVConstraint & | rhs | ||
) |
Definition at line 133 of file BVTerm.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
Checks if the first arguments is less than the second.
lhs | First argument. |
rhs | Second argument. |
lhs < rhs
Definition at line 237 of file MultivariatePolynomial_operators.h.
Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. bool carl::operator< | ( | const Constraint< P > & | lhs, |
const Constraint< P > & | rhs | ||
) |
Definition at line 298 of file Constraint.h.
bool carl::operator< | ( | const ContextPolynomial< Coeff, Ordering, Policies > & | lhs, |
const ContextPolynomial< Coeff, Ordering, Policies > & | rhs | ||
) |
bool carl::operator< | ( | const FactorizedPolynomial< P > & | _lhs, |
const FactorizedPolynomial< P > & | _rhs | ||
) |
Checks if the first arguments is less than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs < _rhs
bool carl::operator< | ( | const FactorizedPolynomial< P > & | _lhs, |
const typename FactorizedPolynomial< P >::CoeffType & | _rhs | ||
) |
Checks if the first arguments is less than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs < _rhs
|
inline |
Operator for the comparison of two intervals.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 138 of file operators.h.
|
inline |
|
inline |
Operators for LowerBound and UpperBound.
Definition at line 11 of file operators.h.
bool carl::operator< | ( | const ModelValue< Rational, Poly > & | lhs, |
const ModelValue< Rational, Poly > & | rhs | ||
) |
Definition at line 300 of file ModelValue.h.
|
inline |
Return true if lhs is smaller than rhs.
Definition at line 112 of file ModelVariable.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 534 of file Monomial.h.
|
inline |
Checks if the first arguments is less than the second.
lhs | First argument. |
rhs | Second argument. |
lhs < rhs
Definition at line 223 of file MultivariatePolynomial_operators.h.
bool carl::operator< | ( | const Monomial::Arg & | lhs, |
const Term< Coeff > & | rhs | ||
) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 549 of file Monomial.h.
|
inline |
Checks if the first arguments is less than the second.
lhs | First argument. |
rhs | Second argument. |
lhs < rhs
Definition at line 211 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first arguments is less than the second.
lhs | First argument. |
rhs | Second argument. |
lhs < rhs
Definition at line 201 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first arguments is less than the second.
lhs | First argument. |
rhs | Second argument. |
lhs < rhs
Definition at line 175 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first arguments is less than the second.
lhs | First argument. |
rhs | Second argument. |
lhs < rhs
Definition at line 196 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first arguments is less than the second.
lhs | First argument. |
rhs | Second argument. |
lhs < rhs
Definition at line 206 of file MultivariatePolynomial_operators.h.
|
inline |
bool carl::operator< | ( | const N & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 586 of file ThomEncoding.h.
|
inline |
bool carl::operator< | ( | const Number & | lhs, |
const RAN & | rhs | ||
) |
Definition at line 67 of file Operations.h.
bool carl::operator< | ( | const Number & | lhs, |
const RealAlgebraicNumberThom< Number > & | rhs | ||
) |
Definition at line 206 of file ran_thom.h.
bool carl::operator< | ( | const RAN & | lhs, |
const Number & | rhs | ||
) |
bool carl::operator< | ( | const RAN & | lhs, |
const RAN & | rhs | ||
) |
bool carl::operator< | ( | const RealAlgebraicNumberThom< Number > & | lhs, |
const Number & | rhs | ||
) |
Definition at line 201 of file ran_thom.h.
bool carl::operator< | ( | const RealAlgebraicNumberThom< Number > & | lhs, |
const RealAlgebraicNumberThom< Number > & | rhs | ||
) |
Definition at line 195 of file ran_thom.h.
|
inline |
lhs | Left SortContent |
rhs | Right SortContent |
lhs < rhs
Definition at line 86 of file SortManager.h.
Orders two sort values.
Definition at line 82 of file SortValue.h.
|
inline |
Checks if the first arguments is less than the second.
lhs | First argument. |
rhs | Second argument. |
lhs < rhs
Definition at line 216 of file MultivariatePolynomial_operators.h.
Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. bool carl::operator< | ( | const Term< Coeff > & | lhs, |
const Monomial::Arg & | rhs | ||
) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. bool carl::operator< | ( | const Term< Coeff > & | lhs, |
const Term< Coeff > & | rhs | ||
) |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. bool carl::operator< | ( | const ThomEncoding< N > & | lhs, |
const N & | rhs | ||
) |
Definition at line 573 of file ThomEncoding.h.
bool carl::operator< | ( | const ThomEncoding< N > & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 559 of file ThomEncoding.h.
|
inline |
Checks if the first arguments is less than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs < _rhs
Definition at line 854 of file FactorizedPolynomial.h.
lhs | The left hand side. |
rhs | The right hand side. |
Definition at line 132 of file UEquality.h.
Definition at line 90 of file UFManager.h.
|
inline |
lhs | The left function instance. |
rhs | The right function instance. |
Definition at line 81 of file UFInstance.h.
|
inline |
Check whether one uninterpreted function is smaller than another.
Definition at line 81 of file UninterpretedFunction.h.
|
inline |
Definition at line 33 of file operators.h.
|
inline |
Definition at line 48 of file operators.h.
|
inline |
bool carl::operator< | ( | const VariableAssignment< Poly > & | lhs, |
const VariableAssignment< Poly > & | rhs | ||
) |
Definition at line 56 of file VariableAssignment.h.
bool carl::operator< | ( | const VariableComparison< Poly > & | lhs, |
const VariableComparison< Poly > & | rhs | ||
) |
lhs | The left variable. |
rhs | The right variable. |
Definition at line 92 of file UVariable.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 555 of file Monomial.h.
|
inline |
Checks if the first arguments is less than the second.
lhs | First argument. |
rhs | Second argument. |
lhs < rhs
Definition at line 230 of file MultivariatePolynomial_operators.h.
Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked.
|
inline |
std::ostream& carl::operator<< | ( | std::ostream & | _os, |
const Sort & | _sort | ||
) |
std::ostream& carl::operator<< | ( | std::ostream & | _out, |
const Factorization< P > & | _factorization | ||
) |
std::ostream& carl::operator<< | ( | std::ostream & | _out, |
const FactorizedPolynomial< P > & | _fpoly | ||
) |
Prints the factorization representation of the given factorized polynomial on the given output stream.
_out | The stream to print on. |
_fpoly | The factorized polynomial to print. |
std::ostream& carl::operator<< | ( | std::ostream & | o, |
const MultiplicationTable< C > & | table | ||
) |
Definition at line 299 of file MultiplicationTable.h.
|
inline |
Definition at line 22 of file BoundType.h.
|
inline |
std::ostream & carl::operator<< | ( | std::ostream & | os, |
CMakeOptionPrinter | cmop | ||
) |
|
inline |
Definition at line 14 of file CompareResult.h.
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const BasicConstraint< Poly > & | c | ||
) |
Prints the given constraint on the given stream.
os | The stream to print the given constraint on. |
c | The formula to print. |
Definition at line 150 of file BasicConstraint.h.
|
inline |
|
inline |
Output a boost::container::flat_map with arbitrary content.
The format is {<key>:<value>, <key>:<value>, ...}
os | Output stream. |
m | map to be printed. |
Definition at line 237 of file streamingOperators.h.
|
inline |
Output a boost::container::flat_set with arbitrary content.
The format is {<length>: <item>, <item>, ...}
os | Output stream. |
s | set to be printed. |
Definition at line 186 of file streamingOperators.h.
std::ostream & carl::operator<< | ( | std::ostream & | os, |
const BVConstraint & | c | ||
) |
std::ostream & carl::operator<< | ( | std::ostream & | os, |
const BVTerm & | term | ||
) |
Definition at line 137 of file BVTerm.cpp.
|
inline |
The output operator of a term.
os | Output stream. |
term | Content of a bitvector term. |
Definition at line 223 of file BVTermContent.h.
|
inline |
|
inline |
Definition at line 213 of file Variables.h.
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const Constraint< Poly > & | c | ||
) |
Prints the given constraint on the given stream.
os | The stream to print the given constraint on. |
c | The formula to print. |
Definition at line 324 of file Constraint.h.
|
inline |
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const ContextPolynomial< Coeff, Ordering, Policies > & | rhs | ||
) |
|
inline |
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const FormulaContent< Pol > & | f | ||
) |
The output operator of a formula.
os | The stream to print on. |
f |
Definition at line 273 of file FormulaContent.h.
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const FormulaContent< Pol > * | fc | ||
) |
Definition at line 308 of file FormulaContent.h.
|
inline |
Definition at line 44 of file ModelValue.h.
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const IntRepRealAlgebraicNumber< Num > & | ran | ||
) |
|
inline |
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const LowerBound< Number > & | lb | ||
) |
Definition at line 101 of file Interval.h.
|
inline |
|
inline |
Definition at line 82 of file ModelSubstitution.h.
|
inline |
Definition at line 305 of file ModelValue.h.
|
inline |
Definition at line 116 of file ModelVariable.h.
|
inline |
Streaming operator for Monomial.
os | Output stream. |
rhs | Monomial. |
os
Definition at line 623 of file Monomial.h.
|
inline |
Streaming operator for std::shared_ptr<Monomial>.
os | Output stream. |
rhs | Monomial. |
os
Definition at line 640 of file Monomial.h.
|
inline |
Definition at line 159 of file MonomialPool.h.
|
inline |
Streaming operator for multivariate polynomials.
os | Output stream. |
rhs | Polynomial. |
os
. Definition at line 630 of file MultivariatePolynomial.h.
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const MultivariateRoot< P > & | mr | ||
) |
|
inline |
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const RealAlgebraicNumberThom< Num > & | rhs | ||
) |
Definition at line 211 of file ran_thom.h.
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const ReductorEntry< C > | rhs | ||
) |
Definition at line 150 of file ReductorEntry.h.
|
inline |
Definition at line 22 of file Relation.h.
|
inline |
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const SignDetermination< N > & | rhs | ||
) |
|
inline |
Prints the given sort value on the given output stream.
os | The output stream to print on. |
sv | The sort value to print. |
Definition at line 67 of file SortValue.h.
|
inline |
Output a std::deque with arbitrary content.
The format is [<length>: <item>, <item>, ...]
os | Output stream. |
v | vector to be printed. |
Definition at line 285 of file streamingOperators.h.
|
inline |
Output a std::forward_list with arbitrary content.
The format is [<item>, <item>, ...]
os | Output stream. |
l | list to be printed. |
Definition at line 89 of file streamingOperators.h.
|
inline |
Output a std::initializer_list with arbitrary content.
The format is [<item>, <item>, ...]
os | Output stream. |
l | list to be printed. |
Definition at line 101 of file streamingOperators.h.
|
inline |
Output a std::list with arbitrary content.
The format is [<length>: <item>, <item>, ...]
os | Output stream. |
l | list to be printed. |
Definition at line 113 of file streamingOperators.h.
|
inline |
Output a std::map with arbitrary content.
The format is {<key>:<value>, <key>:<value>, ...}
os | Output stream. |
m | map to be printed. |
Definition at line 125 of file streamingOperators.h.
|
inline |
Output a std::multimap with arbitrary content.
The format is {<key>:<value>, <key>:<value>, ...}
os | Output stream. |
m | multimap to be printed. |
Definition at line 137 of file streamingOperators.h.
|
inline |
Output a std::optional with arbitrary content.
Prints empty
if the optional holds no value and forwards the call to the content otherwise.
os | Output stream. |
o | optional to be printed. |
Definition at line 149 of file streamingOperators.h.
|
inline |
Output a std::pair with arbitrary content.
The format is (<first>, <second>)
os | Output stream. |
p | pair to be printed. |
Definition at line 162 of file streamingOperators.h.
|
inline |
Output a std::set with arbitrary content.
The format is {<length>: <item>, <item>, ...}
os | Output stream. |
s | set to be printed. |
Definition at line 174 of file streamingOperators.h.
std::ostream & carl::operator<< | ( | std::ostream & | os, |
const std::tuple< T... > & | t | ||
) |
Output a std::tuple with arbitrary content.
The format is (<item>, <item>, ...)
os | Output stream. |
t | tuple to be printed. |
Definition at line 213 of file streamingOperators.h.
|
inline |
Output a std::unordered_map with arbitrary content.
The format is {<key>:<value>, <key>:<value>, ...}
os | Output stream. |
m | map to be printed. |
Definition at line 225 of file streamingOperators.h.
|
inline |
Output a std::unordered_set with arbitrary content.
The format is {<length>: <item>, <item>, ...}
os | Output stream. |
s | unordered_set to be printed. |
Definition at line 249 of file streamingOperators.h.
|
inline |
Output a std::variant with arbitrary content.
The call is simply forwarded to whatever content is currently stored in the variant.
os | Output stream. |
v | variant to be printed. |
Definition at line 261 of file streamingOperators.h.
|
inline |
Output a std::vector with arbitrary content.
The format is [<length>: <item>, <item>, ...]
os | Output stream. |
v | vector to be printed. |
Definition at line 273 of file streamingOperators.h.
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 602 of file ThomEncoding.h.
|
inline |
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const tree< TT > & | tree | ||
) |
|
inline |
Prints the given uninterpreted equality on the given output stream.
os | The output stream to print on. |
ueq | The uninterpreted equality to print. |
Definition at line 142 of file UEquality.h.
std::ostream & carl::operator<< | ( | std::ostream & | os, |
const UFInstance & | ufun | ||
) |
Prints the given uninterpreted function instance on the given output stream.
os | The output stream to print on. |
ufun | The uninterpreted function instance to print. |
Definition at line 51 of file UFInstance.cpp.
std::ostream & carl::operator<< | ( | std::ostream & | os, |
const UFModel & | ufm | ||
) |
Prints the given uninterpreted function model on the given output stream.
os | The output stream to print on. |
ufm | The uninterpreted function model to print. |
Definition at line 29 of file UFModel.cpp.
|
inline |
Prints the given uninterpreted function on the given output stream.
os | The output stream to print on. |
ufun | The uninterpreted function to print. |
Definition at line 91 of file UninterpretedFunction.h.
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const UpperBound< Number > & | lb | ||
) |
Definition at line 111 of file Interval.h.
std::ostream & carl::operator<< | ( | std::ostream & | os, |
const UTerm & | ut | ||
) |
Prints the given uninterpreted term on the given output stream.
os | The output stream to print on. |
ut | The uninterpreted term to print. |
Definition at line 65 of file UTerm.cpp.
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const VariableAssignment< Poly > & | va | ||
) |
std::ostream& carl::operator<< | ( | std::ostream & | os, |
const VariableComparison< Poly > & | vc | ||
) |
|
inline |
Streaming operator for VariableType.
os | Output Stream. |
t | VariableType. |
Definition at line 43 of file Variable.h.
|
inline |
Definition at line 29 of file Definiteness.h.
|
inline |
|
inline |
Prints the given uninterpreted variable on the given output stream.
os | The output stream to print on. |
uvar | The uninterpreted variable to print. |
Definition at line 74 of file UVariable.h.
|
inline |
Streaming operator for Variable.
os | Output stream. |
rhs | Variable. |
os
Definition at line 213 of file Variable.h.
std::ostream& carl::operator<< | ( | std::ostream & | out, |
const CompactTree< E, FI > & | tree | ||
) |
Definition at line 206 of file CompactTree.h.
bool carl::operator<= | ( | const BasicConstraint< P > & | lhs, |
const BasicConstraint< P > & | rhs | ||
) |
Definition at line 123 of file BasicConstraint.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 347 of file MultivariatePolynomial_operators.h.
Check whether the bits of one condition are always set if the corresponding bit of another condition is set.
Essentially checks for an implication.
lhs | The first condition. |
rhs | The second condition. |
Definition at line 45 of file Condition.h.
bool carl::operator<= | ( | const Constraint< P > & | lhs, |
const Constraint< P > & | rhs | ||
) |
Definition at line 303 of file Constraint.h.
|
inline |
Checks if the first arguments is less or equal than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs <= _rhs
Definition at line 869 of file FactorizedPolynomial.h.
|
inline |
Checks if the first arguments is less or equal than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs <= _rhs
Definition at line 875 of file FactorizedPolynomial.h.
|
inline |
Operator for the comparison of two intervals.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 209 of file operators.h.
|
inline |
|
inline |
Definition at line 28 of file operators.h.
|
inline |
Definition at line 43 of file operators.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 561 of file Monomial.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 339 of file MultivariatePolynomial_operators.h.
|
inline |
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 565 of file Monomial.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 331 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 323 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 315 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 319 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 356 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 364 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 327 of file MultivariatePolynomial_operators.h.
bool carl::operator<= | ( | const N & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 588 of file ThomEncoding.h.
|
inline |
bool carl::operator<= | ( | const Number & | lhs, |
const RAN & | rhs | ||
) |
Definition at line 59 of file Operations.h.
bool carl::operator<= | ( | const RAN & | lhs, |
const Number & | rhs | ||
) |
bool carl::operator<= | ( | const RAN & | lhs, |
const RAN & | rhs | ||
) |
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 335 of file MultivariatePolynomial_operators.h.
|
inline |
bool carl::operator<= | ( | const ThomEncoding< N > & | lhs, |
const N & | rhs | ||
) |
Definition at line 575 of file ThomEncoding.h.
bool carl::operator<= | ( | const ThomEncoding< N > & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 561 of file ThomEncoding.h.
|
inline |
Checks if the first arguments is less or equal than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs <= _rhs
Definition at line 881 of file FactorizedPolynomial.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 352 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 360 of file MultivariatePolynomial_operators.h.
|
inline |
Definition at line 66 of file operators.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 569 of file Monomial.h.
|
inline |
Checks if the first argument is less or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs <= rhs
Definition at line 343 of file MultivariatePolynomial_operators.h.
bool carl::operator== | ( | const BasicConstraint< P > & | lhs, |
const BasicConstraint< P > & | rhs | ||
) |
Definition at line 37 of file BitVector.cpp.
bool carl::operator== | ( | const BitVector::forward_iterator & | fi1, |
const BitVector::forward_iterator & | fi2 | ||
) |
Definition at line 42 of file BitVector.cpp.
bool carl::operator== | ( | const BVConstraint & | lhs, |
const BVConstraint & | rhs | ||
) |
Definition at line 130 of file BVTerm.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 79 of file MultivariatePolynomial_operators.h.
|
inline |
Definition at line 208 of file Variables.h.
bool carl::operator== | ( | const Constraint< P > & | lhs, |
const Constraint< P > & | rhs | ||
) |
Definition at line 288 of file Constraint.h.
bool carl::operator== | ( | const ContextPolynomial< Coeff, Ordering, Policies > & | lhs, |
const ContextPolynomial< Coeff, Ordering, Policies > & | rhs | ||
) |
bool carl::operator== | ( | const FactorizedPolynomial< P > & | _lhs, |
const FactorizedPolynomial< P > & | _rhs | ||
) |
Checks if the two arguments are equal.
_lhs | First argument. |
_rhs | Second argument. |
_lhs == _rhs
bool carl::operator== | ( | const FactorizedPolynomial< P > & | _lhs, |
const typename FactorizedPolynomial< P >::CoeffType & | _rhs | ||
) |
Checks if the two arguments are equal.
_lhs | First argument. |
_rhs | Second argument. |
_lhs == _rhs
|
inline |
Operator for the comparison of two intervals.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 88 of file operators.h.
|
inline |
bool carl::operator== | ( | const ModelValue< Rational, Poly > & | lhs, |
const ModelValue< Rational, Poly > & | rhs | ||
) |
Check if two Assignments are equal.
Two Assignments are considered equal, if both are either bool or not bool and their value is the same.
If both Assignments are not bools, the check may return false although they represent the same value. If both are numbers in different representations, this comparison is only done as a "best effort".
lhs | First Assignment. |
rhs | Second Assignment. |
Definition at line 295 of file ModelValue.h.
|
inline |
Return true if lhs is equal to rhs.
Definition at line 105 of file ModelVariable.h.
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 489 of file Monomial.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 503 of file Monomial.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 71 of file MultivariatePolynomial_operators.h.
|
inline |
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 512 of file Monomial.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 59 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 47 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 16 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 41 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 89 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 98 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 63 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 53 of file MultivariatePolynomial_operators.h.
|
inline |
bool carl::operator== | ( | const N & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 594 of file ThomEncoding.h.
|
inline |
Definition at line 108 of file operators.h.
bool carl::operator== | ( | const Number & | lhs, |
const RAN & | rhs | ||
) |
Definition at line 51 of file Operations.h.
bool carl::operator== | ( | const Number & | lhs, |
const RealAlgebraicNumberThom< Number > & | rhs | ||
) |
Definition at line 190 of file ran_thom.h.
bool carl::operator== | ( | const RAN & | lhs, |
const Number & | rhs | ||
) |
bool carl::operator== | ( | const RAN & | lhs, |
const RAN & | rhs | ||
) |
bool carl::operator== | ( | const RealAlgebraicNumberThom< Number > & | lhs, |
const Number & | rhs | ||
) |
Definition at line 185 of file ran_thom.h.
bool carl::operator== | ( | const RealAlgebraicNumberThom< Number > & | lhs, |
const RealAlgebraicNumberThom< Number > & | rhs | ||
) |
Definition at line 179 of file ran_thom.h.
Compares two sort values for equality.
Definition at line 74 of file SortValue.h.
Compare a pair of variable and exponent with a variable.
Returns true, if both variables are the same.
p | Pair of variable and exponent. |
v | Variable. |
p.first == v
Definition at line 38 of file Monomial.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 67 of file MultivariatePolynomial_operators.h.
|
inline |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked.
|
inline |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked.
|
inline |
Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Compares two arguments where one is a term and the other is either a term, a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. bool carl::operator== | ( | const ThomEncoding< N > & | lhs, |
const N & | rhs | ||
) |
Definition at line 581 of file ThomEncoding.h.
bool carl::operator== | ( | const ThomEncoding< N > & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 567 of file ThomEncoding.h.
bool carl::operator== | ( | const TypeInfoPair< T, I > & | _tipA, |
const TypeInfoPair< T, I > & | _tipB | ||
) |
|
inline |
Checks if the two arguments are equal.
_lhs | First argument. |
_rhs | Second argument. |
_lhs == _rhs
Definition at line 809 of file FactorizedPolynomial.h.
lhs | The left hand side. |
rhs | The right hand side. |
Definition at line 114 of file UEquality.h.
Definition at line 82 of file UFManager.h.
|
inline |
lhs | The left function instance. |
rhs | The right function instance. |
Definition at line 72 of file UFInstance.h.
|
inline |
Check whether two uninterpreted functions are equal.
Definition at line 73 of file UninterpretedFunction.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 84 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 93 of file MultivariatePolynomial_operators.h.
|
inline |
bool carl::operator== | ( | const VariableAssignment< Poly > & | lhs, |
const VariableAssignment< Poly > & | rhs | ||
) |
Definition at line 52 of file VariableAssignment.h.
bool carl::operator== | ( | const VariableComparison< Poly > & | lhs, |
const VariableComparison< Poly > & | rhs | ||
) |
|
inline |
Definition at line 40 of file ModelValue.h.
lhs | The left variable. |
rhs | The right variable. |
Definition at line 83 of file UVariable.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 518 of file Monomial.h.
|
inline |
Checks if the two arguments are equal.
lhs | First argument. |
rhs | Second argument. |
lhs == rhs
Definition at line 75 of file MultivariatePolynomial_operators.h.
bool carl::operator> | ( | const BasicConstraint< P > & | lhs, |
const BasicConstraint< P > & | rhs | ||
) |
Definition at line 128 of file BasicConstraint.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 284 of file MultivariatePolynomial_operators.h.
bool carl::operator> | ( | const Constraint< P > & | lhs, |
const Constraint< P > & | rhs | ||
) |
Definition at line 308 of file Constraint.h.
|
inline |
Checks if the first arguments is greater than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs > _rhs
Definition at line 896 of file FactorizedPolynomial.h.
|
inline |
Checks if the first arguments is greater than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs > _rhs
Definition at line 902 of file FactorizedPolynomial.h.
|
inline |
Operator for the comparison of two intervals.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 188 of file operators.h.
|
inline |
Definition at line 192 of file operators.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 573 of file Monomial.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 276 of file MultivariatePolynomial_operators.h.
|
inline |
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 577 of file Monomial.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 268 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 260 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 252 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 256 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 293 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 301 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 264 of file MultivariatePolynomial_operators.h.
bool carl::operator> | ( | const N & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 590 of file ThomEncoding.h.
|
inline |
Definition at line 196 of file operators.h.
bool carl::operator> | ( | const Number & | lhs, |
const RAN & | rhs | ||
) |
Definition at line 71 of file Operations.h.
bool carl::operator> | ( | const RAN & | lhs, |
const Number & | rhs | ||
) |
bool carl::operator> | ( | const RAN & | lhs, |
const RAN & | rhs | ||
) |
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 272 of file MultivariatePolynomial_operators.h.
|
inline |
bool carl::operator> | ( | const ThomEncoding< N > & | lhs, |
const N & | rhs | ||
) |
Definition at line 577 of file ThomEncoding.h.
bool carl::operator> | ( | const ThomEncoding< N > & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 563 of file ThomEncoding.h.
|
inline |
Checks if the first arguments is greater than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs > _rhs
Definition at line 908 of file FactorizedPolynomial.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 289 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 297 of file MultivariatePolynomial_operators.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 581 of file Monomial.h.
|
inline |
Checks if the first argument is greater than the second.
lhs | First argument. |
rhs | Second argument. |
lhs > rhs
Definition at line 280 of file MultivariatePolynomial_operators.h.
bool carl::operator>= | ( | const BasicConstraint< P > & | lhs, |
const BasicConstraint< P > & | rhs | ||
) |
Definition at line 133 of file BasicConstraint.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 410 of file MultivariatePolynomial_operators.h.
bool carl::operator>= | ( | const Constraint< P > & | lhs, |
const Constraint< P > & | rhs | ||
) |
Definition at line 313 of file Constraint.h.
|
inline |
Checks if the first arguments is greater or equal than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs >= _rhs
Definition at line 923 of file FactorizedPolynomial.h.
|
inline |
Checks if the first arguments is greater or equal than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs >= _rhs
Definition at line 929 of file FactorizedPolynomial.h.
|
inline |
Operator for the comparison of two intervals.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 241 of file operators.h.
|
inline |
Definition at line 245 of file operators.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 585 of file Monomial.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 402 of file MultivariatePolynomial_operators.h.
|
inline |
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 589 of file Monomial.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 394 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 386 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 378 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 382 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 419 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 427 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 390 of file MultivariatePolynomial_operators.h.
bool carl::operator>= | ( | const N & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 592 of file ThomEncoding.h.
|
inline |
Definition at line 249 of file operators.h.
bool carl::operator>= | ( | const Number & | lhs, |
const RAN & | rhs | ||
) |
Definition at line 63 of file Operations.h.
bool carl::operator>= | ( | const RAN & | lhs, |
const Number & | rhs | ||
) |
bool carl::operator>= | ( | const RAN & | lhs, |
const RAN & | rhs | ||
) |
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 398 of file MultivariatePolynomial_operators.h.
|
inline |
bool carl::operator>= | ( | const ThomEncoding< N > & | lhs, |
const N & | rhs | ||
) |
Definition at line 579 of file ThomEncoding.h.
bool carl::operator>= | ( | const ThomEncoding< N > & | lhs, |
const ThomEncoding< N > & | rhs | ||
) |
Definition at line 565 of file ThomEncoding.h.
|
inline |
Checks if the first arguments is greater or equal than the second.
_lhs | First argument. |
_rhs | Second argument. |
_lhs >= _rhs
Definition at line 935 of file FactorizedPolynomial.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 415 of file MultivariatePolynomial_operators.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 423 of file MultivariatePolynomial_operators.h.
|
inline |
Compares two arguments where one is a Monomial and the other is either a monomial or a variable.
lhs | First argument. |
rhs | Second argument. |
lhs ~ rhs
, ~
being the relation that is checked. Definition at line 593 of file Monomial.h.
|
inline |
Checks if the first argument is greater or equal than the second.
lhs | First argument. |
rhs | Second argument. |
lhs >= rhs
Definition at line 406 of file MultivariatePolynomial_operators.h.
Definition at line 6 of file BitVector.cpp.
carl::overloaded | ( | Ts... | ) | -> overloaded< Ts... > |
|
inline |
cln::cl_I carl::parse< cln::cl_I > | ( | const std::string & | n | ) |
cln::cl_RA carl::parse< cln::cl_RA > | ( | const std::string & | n | ) |
mpq_class carl::parse< mpq_class > | ( | const std::string & | n | ) |
mpz_class carl::parse< mpz_class > | ( | const std::string & | n | ) |
|
inline |
Calculate the power of some fraction to some positive integer.
basis | Basis. |
exp | Exponent. |
Definition at line 386 of file operations.h.
|
inline |
|
inline |
|
inline |
|
inline |
MultivariatePolynomial<C,O,P> carl::pow | ( | const MultivariatePolynomial< C, O, P > & | p, |
std::size_t | exp | ||
) |
T carl::pow | ( | const T & | basis, |
std::size_t | exp | ||
) |
Implements a fast exponentiation on an arbitrary type T.
To use carl::pow() on a type T, the following must be defined:
basis | A number. |
exp | The exponent. |
basis
to the power of exp
. Definition at line 61 of file operations_generic.h.
UnivariatePolynomial<Coeff> carl::pow | ( | const UnivariatePolynomial< Coeff > & | p, |
std::size_t | exp | ||
) |
|
inline |
RationalFunction<Pol, AS> carl::pow | ( | unsigned | exp, |
const RationalFunction< Pol, AS > & | rf | ||
) |
Monomial::Arg carl::pow | ( | Variable | v, |
std::size_t | exp | ||
) |
void carl::pow_assign | ( | T & | t, |
std::size_t | exp | ||
) |
Implements a fast exponentiation on an arbitrary type T.
The result is stored in the given number. To use carl::pow_assign() on a type T, the following must be defined:
t | A number. |
exp | The exponent. |
Definition at line 85 of file operations_generic.h.
MultivariatePolynomial<C,O,P> carl::pow_naive | ( | const MultivariatePolynomial< C, O, P > & | p, |
std::size_t | exp | ||
) |
UnivariatePolynomial<Coeff> carl::primitive_euclidean | ( | const UnivariatePolynomial< Coeff > & | a, |
const UnivariatePolynomial< Coeff > & | b | ||
) |
Computes the GCD of two univariate polynomial with coefficients from a unique factorization domain using the primitive euclidean algorithm.
Definition at line 16 of file PrimitiveEuclidean.h.
UnivariatePolynomial<Coeff> carl::primitive_part | ( | const UnivariatePolynomial< Coeff > & | p | ) |
The primitive part of p is the normal part of p divided by the content of p.
The primitive part of zero is zero.
Definition at line 19 of file PrimitivePart.h.
std::vector<UnivariatePolynomial<Coeff> > carl::principalSubresultantsCoefficients | ( | const UnivariatePolynomial< Coeff > & | p, |
const UnivariatePolynomial< Coeff > & | q, | ||
SubresultantStrategy | strategy = SubresultantStrategy::Default |
||
) |
void carl::printMatrix | ( | const CoeffMatrix< Coeff > & | m | ) |
void carl::printStacktrace | ( | ) |
UnivariatePolynomial<Coeff> carl::pseudo_primitive_part | ( | const UnivariatePolynomial< Coeff > & | p | ) |
Returns this/divisor where divisor is the numeric content of this polynomial.
Definition at line 36 of file PrimitivePart.h.
MultivariatePolynomial<C,O,P> carl::pseudo_remainder | ( | const MultivariatePolynomial< C, O, P > & | dividend, |
const MultivariatePolynomial< C, O, P > & | divisor, | ||
Variable | var | ||
) |
UnivariatePolynomial<Coeff> carl::pseudo_remainder | ( | const UnivariatePolynomial< Coeff > & | dividend, |
const UnivariatePolynomial< Coeff > & | divisor | ||
) |
Calculates the pseudo-remainder.
Definition at line 105 of file Remainder.h.
|
inline |
Divide two integers.
Discards the remainder of the division.
a | First argument. |
b | Second argument. |
Definition at line 514 of file operations.h.
|
inline |
Divide two fractions.
a | First argument. |
b | Second argument. |
Definition at line 503 of file operations.h.
GFNumber<IntegerT> carl::quotient | ( | const GFNumber< IntegerT > & | lhs, |
const GFNumber< IntegerT > & | rhs | ||
) |
Definition at line 185 of file GFNumber.h.
|
inline |
Implements the division with remainder.
_lhs | |
_rhs |
Definition at line 1488 of file Interval.h.
|
inline |
Definition at line 457 of file operations.h.
|
inline |
MultivariatePolynomial<C,O,P> carl::quotient | ( | const MultivariatePolynomial< C, O, P > & | dividend, |
const MultivariatePolynomial< C, O, P > & | divisor | ||
) |
Calculates the quotient of a polynomial division.
Definition at line 14 of file Quotient.h.
Definition at line 145 of file operations.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
cln::cl_RA carl::rationalize< cln::cl_RA > | ( | double | n | ) |
cln::cl_RA carl::rationalize< cln::cl_RA > | ( | float | n | ) |
|
inline |
Definition at line 206 of file operations.h.
|
inline |
Definition at line 216 of file operations.h.
|
inline |
Definition at line 211 of file operations.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 230 of file operations.h.
|
inline |
Definition at line 209 of file operations.h.
|
inline |
|
inline |
Definition at line 215 of file operations.h.
|
inline |
Definition at line 225 of file operations.h.
|
inline |
Definition at line 220 of file operations.h.
auto carl::real_roots | ( | const ContextPolynomial< Coeff, Ordering, Policies > & | p, |
const Assignment< typename ContextPolynomial< Coeff, Ordering, Policies >::RootType > & | a | ||
) |
RealRootsResult<IntRepRealAlgebraicNumber<Number> > carl::real_roots | ( | const UnivariatePolynomial< Coeff > & | poly, |
const Assignment< IntRepRealAlgebraicNumber< Number >> & | varToRANMap, | ||
const Interval< Number > & | interval = Interval<Number>::unbounded_interval() |
||
) |
Replace all variables except one of the multivariate polynomial 'p' by numbers as given in the mapping 'm', which creates a univariate polynomial, and return all roots of that created polynomial.
Note that 'p' is represented as a univariate polynomial with polynomial coefficients. Its main variable is not replaced and stays the main variable of the created polynomial. However, all variables in the polynomial coefficients are replaced, which is why
The roots are sorted in ascending order. Returns a RealRootsResult indicating whether the roots could be isolated or the polynomial was not univariate or is nullified.
Definition at line 69 of file RealRoots.h.
RealRootsResult<IntRepRealAlgebraicNumber<Number> > carl::real_roots | ( | const UnivariatePolynomial< Coeff > & | polynomial, |
const Interval< Number > & | interval = Interval<Number>::unbounded_interval() |
||
) |
Find all real roots of a univariate 'polynomial' with numeric coefficients within a given 'interval'.
Find all real roots of a univariate 'polynomial' with non-numeric coefficients within a given 'interval'.
The roots are sorted in ascending order.
However, all coefficients must be types that contain numeric numbers that are retrievable by using .constant_part(); The roots are sorted in ascending order.
Definition at line 25 of file RealRoots.h.
|
inline |
std::list<ThomEncoding<Number> > carl::realRootsThom | ( | const MultivariatePolynomial< Number > & | p, |
Variable::Arg | mainVar, | ||
const std::map< Variable, ThomEncoding< Number >> & | m = {} , |
||
const Interval< Number > & | interval = Interval<Number>::unbounded_interval() |
||
) |
Definition at line 36 of file ThomRootFinder.h.
std::list< ThomEncoding< Number > > carl::realRootsThom | ( | const MultivariatePolynomial< Number > & | p, |
Variable::Arg | mainVar, | ||
std::shared_ptr< ThomEncoding< Number >> | point_ptr, | ||
const Interval< Number > & | interval = Interval<Number>::unbounded_interval() |
||
) |
Definition at line 117 of file ThomRootFinder.h.
std::list<RealAlgebraicNumber<Number> > carl::realRootsThom | ( | const UnivariatePolynomial< Coeff > & | p, |
const std::map< Variable, RealAlgebraicNumber< Number >> & | m, | ||
const Interval< Number > & | interval | ||
) |
|
inline |
|
inline |
Definition at line 520 of file operations.h.
|
inline |
Definition at line 84 of file BVCompareRelation.h.
|
inline |
Definition at line 75 of file BVCompareRelation.h.
|
inline |
Calculate the remainder of the integer division.
a | First argument. |
b | Second argument. |
Definition at line 526 of file operations.h.
|
inline |
MultivariatePolynomial<C,O,P> carl::remainder | ( | const MultivariatePolynomial< C, O, P > & | dividend, |
const MultivariatePolynomial< C, O, P > & | divisor | ||
) |
UnivariatePolynomial<Coeff> carl::remainder | ( | const UnivariatePolynomial< Coeff > & | dividend, |
const UnivariatePolynomial< Coeff > & | divisor | ||
) |
UnivariatePolynomial<Coeff> carl::remainder | ( | const UnivariatePolynomial< Coeff > & | dividend, |
const UnivariatePolynomial< Coeff > & | divisor, | ||
const Coeff & | prefactor | ||
) |
Definition at line 138 of file operations.h.
UnivariatePolynomial<Coeff> carl::remainder_helper | ( | const UnivariatePolynomial< Coeff > & | dividend, |
const UnivariatePolynomial< Coeff > & | divisor, | ||
const Coeff * | prefactor = nullptr |
||
) |
Does the heavy lifting for the remainder computation of polynomial division.
divisor | |
prefactor |
Definition at line 20 of file Remainder.h.
UnivariatePolynomial<Coeff> carl::replace_main_variable | ( | const UnivariatePolynomial< Coeff > & | p, |
Variable | newVar | ||
) |
Replaces the main variable in a polynomial.
p | The polynomial. |
newVar | New main variable. |
Definition at line 31 of file Representation.h.
Formula<Poly> carl::representingFormula | ( | const ModelVariable & | mv, |
const Model< Rational, Poly > & | model | ||
) |
Formula<Pol> carl::resolve_negation | ( | const Formula< Pol > & | f, |
bool | _keepConstraint = true , |
||
bool | resolve_varcomp = false |
||
) |
Resolves the outermost negation of this formula.
_keepConstraint | A flag indicating whether to change constraints in order to resolve the negation in front of them, or to keep the constraints and leave the negation. |
Definition at line 12 of file Negations.h.
|
inline |
Definition at line 22 of file Functions.h.
UnivariatePolynomial<Coeff> carl::resultant | ( | const UnivariatePolynomial< Coeff > & | p, |
const UnivariatePolynomial< Coeff > & | q, | ||
SubresultantStrategy | strategy = SubresultantStrategy::Default |
||
) |
bool carl::returnFalse | ( | const T & | , |
const T & | |||
) |
std::pair<cln::cl_RA, cln::cl_RA> carl::root_safe | ( | const cln::cl_RA & | a, |
uint | n | ||
) |
std::pair< mpq_class, mpq_class > carl::root_safe | ( | const mpq_class & | a, |
uint | n | ||
) |
Calculate the nth root of a fraction.
The precise result is contained in the resulting interval.
Definition at line 72 of file operations.cpp.
|
inline |
Round an integer to next integer, that is do nothing.
n | An integer. |
Definition at line 264 of file operations.h.
|
inline |
Round a fraction to next integer.
n | A fraction. |
Definition at line 255 of file operations.h.
|
inline |
|
inline |
Definition at line 274 of file operations.h.
double carl::roundDown | ( | const Rational & | o, |
bool | overapproximate = false |
||
) |
Returns a down-rounded representation of the given numeric.
o | Number to round. |
overapproximate | Flag if overapproximation shall be guaranteed. |
Definition at line 12 of file generic.h.
double carl::roundUp | ( | const Rational & | o, |
bool | overapproximate = false |
||
) |
Returns a up-rounded representation of the given numeric.
o | |
overapproximate |
Definition at line 38 of file generic.h.
Number carl::sample | ( | const Interval< Number > & | i, |
bool | includingBounds = true |
||
) |
Searches for some point in this interval, preferably near the midpoint and with a small representation.
Checks the integers next to the midpoint, uses the midpoint if both are outside.
Definition at line 30 of file Sampling.h.
Number carl::sample_above | ( | const IntRepRealAlgebraicNumber< Number > & | n | ) |
Number carl::sample_above | ( | const Number & | n | ) |
RealAlgebraicNumberThom<Number> carl::sample_above | ( | const RealAlgebraicNumberThom< Number > & | n | ) |
Definition at line 149 of file ran_thom.h.
Number carl::sample_below | ( | const IntRepRealAlgebraicNumber< Number > & | n | ) |
Number carl::sample_below | ( | const Number & | n | ) |
RealAlgebraicNumberThom<Number> carl::sample_below | ( | const RealAlgebraicNumberThom< Number > & | n | ) |
Definition at line 153 of file ran_thom.h.
Number carl::sample_between | ( | const IntRepRealAlgebraicNumber< Number > & | lower, |
const IntRepRealAlgebraicNumber< Number > & | upper | ||
) |
Number carl::sample_between | ( | const IntRepRealAlgebraicNumber< Number > & | lower, |
const Number & | upper | ||
) |
Number carl::sample_between | ( | const Number & | lower, |
const IntRepRealAlgebraicNumber< Number > & | upper | ||
) |
Number carl::sample_between | ( | const Number & | lower, |
const Number & | upper | ||
) |
Definition at line 26 of file NumberOperations.h.
Number carl::sample_between | ( | const Number & | lower, |
const RealAlgebraicNumberThom< Number > & | upper | ||
) |
Definition at line 165 of file ran_thom.h.
Number carl::sample_between | ( | const RealAlgebraicNumberThom< Number > & | lower, |
const Number & | upper | ||
) |
Definition at line 161 of file ran_thom.h.
RealAlgebraicNumberThom<Number> carl::sample_between | ( | const RealAlgebraicNumberThom< Number > & | lower, |
const RealAlgebraicNumberThom< Number > & | upper | ||
) |
Definition at line 157 of file ran_thom.h.
Number carl::sample_infty | ( | const Interval< Number > & | i | ) |
Searches for some point in this interval, preferably far aways from zero and with a small representation.
Checks the integer next to the right endpoint if the interval is semi-positive. Checks the integer next to the left endpoint if the interval is semi-negative. Uses zero otherwise.
Definition at line 129 of file Sampling.h.
Number carl::sample_left | ( | const Interval< Number > & | i | ) |
Searches for some point in this interval, preferably near the left endpoint and with a small representation.
Checks the integer next to the left endpoint, uses the midpoint if it is outside.
Definition at line 83 of file Sampling.h.
Number carl::sample_right | ( | const Interval< Number > & | i | ) |
Searches for some point in this interval, preferably near the right endpoint and with a small representation.
Checks the integer next to the right endpoint, uses the midpoint if it is outside.
Definition at line 98 of file Sampling.h.
Number carl::sample_stern_brocot | ( | const Interval< Number > & | i, |
bool | includingBounds = true |
||
) |
Searches for some point in this interval, preferably near the midpoint and with a small representation.
Uses a binary search based on the Stern-Brocot tree starting from the integer below the midpoint.
Definition at line 49 of file Sampling.h.
Number carl::sample_zero | ( | const Interval< Number > & | i | ) |
Searches for some point in this interval, preferably near zero and with a small representation.
Checks the integer next to the left endpoint if the interval is semi-positive. Checks the integer next to the right endpoint if the interval is semi-negative. Uses zero otherwise.
Definition at line 115 of file Sampling.h.
unsigned carl::satisfied_by | ( | const BasicConstraint< Pol > & | c, |
const Assignment< typename Pol::NumberType > & | _assignment | ||
) |
Checks whether the given assignment satisfies this constraint.
_assignment | The assignment. |
Definition at line 24 of file Evaluation.h.
auto carl::satisfied_by | ( | const Constraint< Pol > & | c, |
const Assignment< typename Pol::NumberType > & | a | ||
) |
unsigned carl::satisfies | ( | const Model< Rational, Poly > & | _assignment, |
const Formula< Poly > & | _formula | ||
) |
_assignment | The assignment for which to check whether the given formula is satisfied by it. |
_formula | The formula to be satisfied. |
unsigned carl::satisfies | ( | const Model< Rational, Poly > & | _model, |
const std::map< Variable, Rational > & | _assignment, | ||
const std::map< BVVariable, BVTerm > & | bvAssigns, | ||
const Formula< Poly > & | _formula | ||
) |
_model | The assignment for which to check whether the given formula is satisfied by it. |
_assignment | The map to store the rational assignments in. |
bvAssigns | The map to store the bitvector assignments in. |
_formula | The formula to be satisfied. |
|
inline |
Calculates the separable part of this monomial.
For a monomial with , this is .
Definition at line 12 of file SeparablePart.h.
bool carl::set_complement | ( | const Interval< Number > & | interval, |
Interval< Number > & | resA, | ||
Interval< Number > & | resB | ||
) |
Calculates the complement in a set-theoretic manner (can result in two distinct intervals).
interval | Interval. |
resA | Result a. |
resB | Result b. |
Definition at line 16 of file SetTheory.h.
bool carl::set_difference | ( | const Interval< Number > & | lhs, |
const Interval< Number > & | rhs, | ||
Interval< Number > & | resA, | ||
Interval< Number > & | resB | ||
) |
Calculates the difference of two intervals in a set-theoretic manner: lhs \ rhs (can result in two distinct intervals).
lhs | First interval. |
rhs | Second interval. |
resA | Result a. |
resB | Result b. |
Definition at line 52 of file SetTheory.h.
bool carl::set_have_intersection | ( | const Interval< Number > & | lhs, |
const Interval< Number > & | rhs | ||
) |
Definition at line 118 of file SetTheory.h.
Interval<Number> carl::set_intersection | ( | const Interval< Number > & | lhs, |
const Interval< Number > & | rhs | ||
) |
Intersects two intervals in a set-theoretic manner.
lhs | Lefthand side. |
rhs | Righthand side. |
Definition at line 99 of file SetTheory.h.
bool carl::set_is_proper_subset | ( | const Interval< Number > & | lhs, |
const Interval< Number > & | rhs | ||
) |
Checks whether lhs is a proper subset of rhs.
Definition at line 128 of file SetTheory.h.
bool carl::set_is_subset | ( | const Interval< Number > & | lhs, |
const Interval< Number > & | rhs | ||
) |
Checks whether lhs is a subset of rhs.
Definition at line 143 of file SetTheory.h.
bool carl::set_symmetric_difference | ( | const Interval< Number > & | lhs, |
const Interval< Number > & | rhs, | ||
Interval< Number > & | resA, | ||
Interval< Number > & | resB | ||
) |
Calculates the symmetric difference of two intervals in a set-theoretic manner (can result in two distinct intervals).
lhs | First interval. |
rhs | Second interval. |
resA | Result a. |
resB | Result b. |
Definition at line 162 of file SetTheory.h.
bool carl::set_union | ( | const Interval< Number > & | lhs, |
const Interval< Number > & | rhs, | ||
Interval< Number > & | resA, | ||
Interval< Number > & | resB | ||
) |
Computes the union of two intervals (can result in two distinct intervals).
lhs | First interval. |
rhs | Second interval. |
resA | Result a. |
resB | Result b. |
Definition at line 187 of file SetTheory.h.
Sign carl::sgn | ( | const IntRepRealAlgebraicNumber< Number > & | n | ) |
Sign carl::sgn | ( | const IntRepRealAlgebraicNumber< Number > & | n, |
const UnivariatePolynomial< Number > & | p | ||
) |
Sign carl::sgn | ( | const Number & | n | ) |
uint carl::sign_variations | ( | const UnivariatePolynomial< Coefficient > & | polynomial, |
const Interval< Coefficient > & | interval | ||
) |
Counts the sign variations (i.e.
an upper bound for the number of real roots) via Descarte's rule of signs. This is an upper bound for countRealRoots().
polynomial | A polynomial. |
interval | Count roots within this interval. |
Definition at line 72 of file SignVariations.h.
std::size_t carl::sign_variations | ( | InputIterator | begin, |
InputIterator | end | ||
) |
std::size_t carl::sign_variations | ( | InputIterator | begin, |
InputIterator | end, | ||
const Function & | f | ||
) |
Counts the number of sign variations in the given object range.
The function accepts an object range and an additional function f. If the objects are not of type Sign, the function f can be used to convert the objects to a Sign on the fly. As for the number of sign variations in the evaluations of polynomials p
at a position x
, this might look like this: signVariations(p.begin(), p.end(), [&x](const Polynomial& p){ return sgn(p.evaluate(x)); });
begin | Start of object range. |
end | End of object range. |
f | Function object to convert objects to Sign. |
Sign carl::signAtMinusInf | ( | const UnivariatePolynomial< Number > & | p | ) |
Sign carl::signAtPlusInf | ( | const UnivariatePolynomial< Number > & | p | ) |
UnivariatePolynomial<Coeff> carl::signed_pseudo_remainder | ( | const UnivariatePolynomial< Coeff > & | dividend, |
const UnivariatePolynomial< Coeff > & | divisor | ||
) |
Compute the signed pseudo-remainder.
Definition at line 159 of file Remainder.h.
|
inline |
Interval<Number> carl::sin | ( | const Interval< Number > & | i | ) |
Definition at line 10 of file Trigonometry.h.
|
inline |
|
inline |
void carl::sin_assign | ( | Interval< Number > & | i | ) |
Interval<Number> carl::sinh | ( | const Interval< Number > & | i | ) |
Definition at line 82 of file Trigonometry.h.
void carl::sinh_assign | ( | Interval< Number > & | i | ) |
std::vector<T> carl::solveDiophantine | ( | MultivariatePolynomial< T > & | p | ) |
Diophantine Equations solver.
std::vector<std::pair<C,MultivariatePolynomial<C,O,P> > > carl::sos_decomposition | ( | const MultivariatePolynomial< C, O, P > & | p, |
bool | not_trivial = false |
||
) |
Definition at line 12 of file SoSDecomposition.h.
MultivariatePolynomial<C,O,P> carl::SPolynomial | ( | const MultivariatePolynomial< C, O, P > & | p, |
const MultivariatePolynomial< C, O, P > & | q | ||
) |
Calculates the S-Polynomial of two polynomials.
Definition at line 11 of file SPolynomial.h.
cln::cl_RA carl::sqrt | ( | const cln::cl_RA & | a | ) |
mpq_class carl::sqrt | ( | const mpq_class & | a | ) |
|
inline |
void carl::sqrt_assign | ( | Interval< Number > & | i | ) |
bool carl::sqrt_exact | ( | const cln::cl_RA & | a, |
cln::cl_RA & | b | ||
) |
Calculate the square root of a fraction if possible.
a | The fraction to calculate the square root for. |
b | A reference to the rational, in which the result is stored. |
bool carl::sqrt_exact | ( | const mpq_class & | a, |
mpq_class & | b | ||
) |
Calculate the square root of a fraction if possible.
a | The fraction to calculate the square root for. |
b | A reference to the rational, in which the result is stored. |
Definition at line 9 of file operations.cpp.
std::pair<cln::cl_RA, cln::cl_RA> carl::sqrt_fast | ( | const cln::cl_RA & | a | ) |
Compute square root in a fast but less precise way.
Use cln::sqrt() to obtain an approximation. If the result is rational, i.e. the result is exact, use this result. Otherwise use the nearest integers as bounds on the square root.
a | Some number. |
std::pair< mpq_class, mpq_class > carl::sqrt_fast | ( | const mpq_class & | a | ) |
Compute square root in a fast but less precise way.
Use cln::sqrt() to obtain an approximation. If the result is rational, i.e. the result is exact, use this result. Otherwise use the nearest integers as bounds on the square root.
a | Some number. |
Definition at line 101 of file operations.cpp.
std::pair<cln::cl_RA, cln::cl_RA> carl::sqrt_safe | ( | const cln::cl_RA & | a | ) |
Calculate the square root of a fraction.
If we are able to find a an such that is the exact root of , is returned. If we can not find such a number (note that such a number might not even exist), is returned with . Note that we try to find bounds that are very close to the actual square root. If a small representation is more important than a small interval, sqrt_fast should be used.
a | A fraction. |
std::pair< mpq_class, mpq_class > carl::sqrt_safe | ( | const mpq_class & | a | ) |
Definition at line 39 of file operations.cpp.
|
inline |
std::map<uint, UnivariatePolynomial<Coeff> > carl::squareFreeFactorization | ( | const UnivariatePolynomial< Coeff > & | p | ) |
Definition at line 15 of file Factorization_univariate.h.
MultivariatePolynomial<C,O,P> carl::squareFreePart | ( | const MultivariatePolynomial< C, O, P > & | polynomial | ) |
Definition at line 16 of file SquareFreePart.h.
UnivariatePolynomial<Coeff> carl::squareFreePart | ( | const UnivariatePolynomial< Coeff > & | p | ) |
|
inline |
|
inline |
Allows to easily output some container with all elements separated by some string.
Usage: os << stream_joined(" ", container)
.
glue | The intermediate string. |
v | The container to be printed. |
operator<<()
. Definition at line 311 of file streamingOperators.h.
|
inline |
Allows to easily output some container with all elements separated by some string.
An additional callable f
takes care of writing an individual element to the stream. Usage: os << stream_joined(" ", container)
.
glue | The intermediate string. |
v | The container to be printed. |
f | A callable taking a stream and an element of v . |
operator<<()
. Definition at line 317 of file streamingOperators.h.
std::vector<UnivariatePolynomial<Coeff> > carl::sturm_sequence | ( | const UnivariatePolynomial< Coeff > & | p | ) |
Computes the sturm sequence of a polynomial as defined at [3], page 333, example 22.
The sturm sequence of p is defined as:
Definition at line 35 of file SturmSequence.h.
std::vector<UnivariatePolynomial<Coeff> > carl::sturm_sequence | ( | const UnivariatePolynomial< Coeff > & | p, |
const UnivariatePolynomial< Coeff > & | q | ||
) |
Computes the sturm sequence of two polynomials.
Compared to the regular sturm sequence, we use the second polynomial as p_1.
Definition at line 16 of file SturmSequence.h.
std::list<UnivariatePolynomial<Coeff> > carl::subresultants | ( | const UnivariatePolynomial< Coeff > & | pol1, |
const UnivariatePolynomial< Coeff > & | pol2, | ||
SubresultantStrategy | strategy | ||
) |
Implements a subresultants algorithm with optimizations described in [2] .
pol1 | First polynomial. |
pol2 | First polynomial. |
strategy | Strategy. |
Case distinction on delta: either we choose b as next subresultant or we could reduce b (delta > 1) and add the reduced version c as next subresultant. The reduction is done by division, which depends on the internal variable order of GiNaC and might fail although for some order it would succeed. In this case, we just do not reduce b. (A relaxed reduction could also be applied.)
After the if-else block, bDeg is the degree of the front-most element of subresultants, be it c or b.
Definition at line 48 of file Resultant.h.
FactorizedPolynomial<P> carl::substitute | ( | const FactorizedPolynomial< P > & | p, |
const std::map< Variable, FactorizedPolynomial< P >> & | substitutions | ||
) |
Replace all variables by a value given in their map.
Definition at line 25 of file substitution.h.
FactorizedPolynomial<P> carl::substitute | ( | const FactorizedPolynomial< P > & | p, |
const std::map< Variable, FactorizedPolynomial< P >> & | substitutions, | ||
const std::map< Variable, P > & | substitutionsAsP | ||
) |
Replace all variables by a value given in their map.
Definition at line 38 of file substitution.h.
FactorizedPolynomial<P> carl::substitute | ( | const FactorizedPolynomial< P > & | p, |
const std::map< Variable, Subs > & | substitutions | ||
) |
Replace all variables by a value given in their map.
Definition at line 84 of file substitution.h.
FactorizedPolynomial<P> carl::substitute | ( | const FactorizedPolynomial< P > & | p, |
Variable | var, | ||
const FactorizedPolynomial< P > & | value | ||
) |
Replace the given variable by the given value.
Definition at line 12 of file substitution.h.
Coeff carl::substitute | ( | const Monomial & | m, |
const std::map< Variable, Coeff > & | substitutions | ||
) |
Applies the given substitutions to a monomial.
Every variable may be substituted by some value.
m | The monomial. |
substitutions | Maps variables to numbers. |
Definition at line 19 of file Substitution.h.
MultivariatePolynomial<C,O,P> carl::substitute | ( | const MultivariatePolynomial< C, O, P > & | p, |
const std::map< Variable, MultivariatePolynomial< C, O, P >> & | substitutions | ||
) |
MultivariatePolynomial<C,O,P> carl::substitute | ( | const MultivariatePolynomial< C, O, P > & | p, |
const std::map< Variable, S > & | substitutions | ||
) |
MultivariatePolynomial<C,O,P> carl::substitute | ( | const MultivariatePolynomial< C, O, P > & | p, |
const std::map< Variable, Term< C >> & | substitutions | ||
) |
MultivariatePolynomial<C,O,P> carl::substitute | ( | const MultivariatePolynomial< C, O, P > & | p, |
Variable | var, | ||
const MultivariatePolynomial< C, O, P > & | value | ||
) |
SqrtEx<Poly> carl::substitute | ( | const Poly & | _substituteIn, |
const carl::Variable | _varToSubstitute, | ||
const SqrtEx< Poly > & | _substituteBy | ||
) |
Substitutes a variable in an expression by a square root expression, which results in a square root expression.
_substituteIn | The polynomial to substitute in. |
_varToSubstitute | The variable to substitute. |
_substituteBy | The square root expression by which the variable gets substituted. |
Definition at line 34 of file Substitution.h.
T carl::substitute | ( | const T & | t, |
const Model< Rational, Poly > & | m | ||
) |
Substitutes a model into an expression t.
The result is always an expression of the same type. This may not be possible for some expressions, for example for uninterpreted equalities.
Definition at line 36 of file ModelEvaluation.h.
UnivariatePolynomial<Coeff> carl::substitute | ( | const UnivariatePolynomial< Coeff > & | p, |
Variable | var, | ||
const Coeff & | value | ||
) |
void carl::substitute_inplace | ( | BVConstraint & | bvc, |
const Model< Rational, Poly > & | m | ||
) |
Substitutes all variables from a model within a bitvector constraint.
Definition at line 37 of file ModelEvaluation_Bitvector.h.
void carl::substitute_inplace | ( | BVTerm & | bvt, |
const Model< Rational, Poly > & | m | ||
) |
Substitutes all variables from a model within a bitvector term.
Definition at line 13 of file ModelEvaluation_Bitvector.h.
void carl::substitute_inplace | ( | Constraint< Poly > & | c, |
const Model< Rational, Poly > & | m | ||
) |
Substitutes all variables from a model within a constraint.
May fail to substitute some variables, for example if the values are RANs or SqrtEx.
Definition at line 16 of file ModelEvaluation_Constraint.h.
void carl::substitute_inplace | ( | Formula< Poly > & | f, |
const Model< Rational, Poly > & | m | ||
) |
Substitutes all variables from a model within a formula.
May fail to substitute some variables, for example if the values are RANs or SqrtEx.
Definition at line 115 of file ModelEvaluation_Formula.h.
void carl::substitute_inplace | ( | MultivariatePolynomial< C, O, P > & | p, |
Variable | var, | ||
const MultivariatePolynomial< C, O, P > & | value | ||
) |
void carl::substitute_inplace | ( | MultivariatePolynomial< Rational > & | p, |
Variable | var, | ||
const Rational & | r | ||
) |
Substitutes a variable with a rational within a polynomial.
Definition at line 409 of file Substitution.h.
void carl::substitute_inplace | ( | MultivariateRoot< Poly > & | mr, |
Variable | var, | ||
const Poly & | poly | ||
) |
Create a copy of the underlying polynomial with the given variable replaced by the given polynomial.
Definition at line 125 of file MultivariateRoot.h.
void carl::substitute_inplace | ( | MultivariateRoot< Poly > & | mvr, |
const Model< Rational, Poly > & | m | ||
) |
Substitutes all variables from a model within a MultivariateRoot.
May fail to substitute some variables, for example if the values are RANs or SqrtEx.
Definition at line 13 of file ModelEvaluation_MVRoot.h.
void carl::substitute_inplace | ( | Poly & | p, |
const Model< Rational, ModelPoly > & | m | ||
) |
Substitutes all variables from a model within a polynomial.
May fail to substitute some variables, for example if the values are RANs or SqrtEx.
Definition at line 16 of file ModelEvaluation_Polynomial.h.
void carl::substitute_inplace | ( | UnivariatePolynomial< Coeff > & | p, |
Variable | var, | ||
const Coeff & | value | ||
) |
void carl::substitute_inplace | ( | UnivariatePolynomial< Poly > & | p, |
Variable | var, | ||
const Rational & | r | ||
) |
bool carl::swapConstraintBounds | ( | ConstraintBounds< Pol > & | _constraintBounds, |
Formulas< Pol > & | _intoFormulas, | ||
bool | _inConjunction | ||
) |
Stores for every polynomial for which we determined bounds for given constraints a minimal set of constraints representing these bounds into the given set of sub-formulas of a conjunction (_inConjunction == true) or disjunction (_inConjunction == false) to construct.
_constraintBounds | An object collecting bounds of polynomials. |
_intoAsts | A set of sub-formulas of a conjunction (_inConjunction == true) or disjunction (_inConjunction == false) to construct. |
_inConjunction | true, if constraints representing the polynomial's bounds are going to be part of a conjunction. false, if constraints representing the polynomial's bounds are going to be part of a disjunction. |
Definition at line 328 of file ConstraintBounds.h.
UnivariatePolynomial<MultivariatePolynomial<typename UnderlyingNumberType<Coeff>::type> > carl::switch_main_variable | ( | const UnivariatePolynomial< Coeff > & | p, |
Variable | newVar | ||
) |
Switches the main variable using a purely syntactical restructuring.
The resulting polynomial will be algebraicly identical, but have the given variable as its main variable.
p | The polynomial. |
newVar | New main variable. |
Definition at line 18 of file Representation.h.
MultivariatePolynomial<C,O,P> carl::switch_variable | ( | const MultivariatePolynomial< C, O, P > & | p, |
Variable | old_var, | ||
Variable | new_var | ||
) |
Interval<Number> carl::tan | ( | const Interval< Number > & | i | ) |
Definition at line 34 of file Trigonometry.h.
void carl::tan_assign | ( | Interval< Number > & | i | ) |
Interval<Number> carl::tanh | ( | const Interval< Number > & | i | ) |
Definition at line 106 of file Trigonometry.h.
void carl::tanh_assign | ( | Interval< Number > & | i | ) |
Formula<Poly> carl::to_cnf | ( | const Formula< Poly > & | f, |
bool | keep_constraints = true , |
||
bool | simplify_combinations = false , |
||
bool | tseitin_equivalence = true |
||
) |
Converts the given formula to CNF.
f | Formula to convert. |
keep_constraints | Indicates whether to keep constraints or allow to change them in resolve_negation(). |
simplify_combinations | Indicates whether we attempt to simplify combinations of constraints with ConstraintBounds. |
tseitin_equivalence | Indicates whether we use implications or equivalences for tseitin variables. |
Definition at line 167 of file CNF.h.
|
inline |
Converts the given integer to a double.
n | An integer. |
Definition at line 121 of file operations.h.
|
inline |
Converts the given fraction to a double.
n | A fraction. |
Definition at line 113 of file operations.h.
|
inline |
|
inline |
Conversion functions.
The following function convert types to other types.
Definition at line 114 of file operations.h.
|
inline |
Definition at line 117 of file operations.h.
|
inline |
Definition at line 80 of file operations.h.
|
inline |
Conversion functions.
The following function convert types to other types.
Definition at line 77 of file operations.h.
|
inline |
|
inline |
|
inline |
|
inline |
Casts the Interval to an arbitrary integer type which has a constructor for a native int.
_floatInterval |
Definition at line 1500 of file Interval.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Convert a fraction to an integer.
This method assert, that the given fraction is an integer, i.e. that the denominator is one.
n | A fraction. |
Definition at line 174 of file operations.h.
|
inline |
Convert a fraction to an integer.
This method assert, that the given fraction is an integer, i.e. that the denominator is one.
n | A fraction. |
Definition at line 147 of file operations.h.
|
inline |
|
inline |
|
inline |
Convert a fraction to an unsigned.
n | A fraction. |
Definition at line 191 of file operations.h.
|
inline |
Definition at line 125 of file operations.h.
|
inline |
Definition at line 88 of file operations.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 131 of file operations.h.
|
inline |
Definition at line 93 of file operations.h.
|
inline |
Convert a cln fraction to a cln long float.
n | A fraction. |
Definition at line 192 of file operations.h.
std::pair<QuantifierPrefix, Formula<Poly> > carl::to_pnf | ( | const Formula< Poly > & | f | ) |
Formula<Poly> carl::to_pnf | ( | const Formula< Poly > & | f, |
QuantifierPrefix & | prefix, | ||
boost::container::flat_set< Variable > & | used_vars, | ||
bool | negated = false |
||
) |
UnivariatePolynomial<C> carl::to_univariate_polynomial | ( | const MultivariatePolynomial< C, O, P > & | p | ) |
Convert a univariate polynomial that is currently (mis)represented by a 'MultivariatePolynomial' into a more appropiate 'UnivariatePolynomial' representation.
Note that the current polynomial must mention one and only one variable, i.e., be indeed univariate.
Definition at line 17 of file to_univariate_polynomial.h.
UnivariatePolynomial<MultivariatePolynomial<C,O,P> > carl::to_univariate_polynomial | ( | const MultivariatePolynomial< C, O, P > & | p, |
Variable | v | ||
) |
Convert a multivariate polynomial that is currently represented by a MultivariatePolynomial into a UnivariatePolynomial representation.
The main variable of the resulting polynomial is given as second argument.
Definition at line 35 of file to_univariate_polynomial.h.
|
inline |
Definition at line 52 of file BVCompareRelation.h.
|
inline |
Definition at line 29 of file BVCompareRelation.h.
std::string carl::toString | ( | const cln::cl_I & | _number, |
bool | _infix = true |
||
) |
std::string carl::toString | ( | const cln::cl_RA & | _number, |
bool | _infix = true |
||
) |
std::string carl::toString | ( | const GFNumber< IntegerType > & | _number, |
bool | |||
) |
Creates the string representation to the given galois field number.
_number | The galois field number to get its string representation for. |
Definition at line 210 of file GFNumber.h.
std::string carl::toString | ( | const mpq_class & | _number, |
bool | _infix | ||
) |
std::string carl::toString | ( | const mpz_class & | _number, |
bool | _infix | ||
) |
|
inline |
Definition at line 103 of file operations.h.
|
inline |
|
inline |
std::size_t carl::total_degree | ( | const MultivariatePolynomial< Coeff, Ordering, Policies > & | p | ) |
Calculates the max.
degree over all monomials occurring in the polynomial. As the degree of the zero polynomial is , we assert that this polynomial is not zero. This must be checked by the caller before calling this method.
Definition at line 114 of file Degree.h.
std::size_t carl::total_degree | ( | const UnivariatePolynomial< Coeff > & | p | ) |
Returns the total degree of the polynomial, that is the maximum degree of any monomial.
As the degree of the zero polynomial is , we assert that this polynomial is not zero. This must be checked by the caller before calling this method.
Definition at line 164 of file Degree.h.
bool carl::try_divide | ( | const MultivariatePolynomial< Coeff, Ordering, Policies > & | dividend, |
const MultivariatePolynomial< Coeff, Ordering, Policies > & | divisor, | ||
MultivariatePolynomial< Coeff, Ordering, Policies > & | quotient | ||
) |
Divides the polynomial by another polynomial.
If the divisor divides this polynomial, quotient contains the result of the division and true is returned. Otherwise, false is returned and the content of quotient remains unchanged. Applies if the coefficients are from a field. Note that the quotient must not be *this.
divisor | |
quotient |
Definition at line 74 of file Division.h.
bool carl::try_divide | ( | const Term< Coeff > & | t, |
const Coeff & | c, | ||
Term< Coeff > & | res | ||
) |
Definition at line 28 of file Division.h.
bool carl::try_divide | ( | const UnivariatePolynomial< Coeff > & | dividend, |
const Coeff & | divisor, | ||
UnivariatePolynomial< Coeff > & | quotient | ||
) |
|
inline |
bool carl::try_parse< cln::cl_I > | ( | const std::string & | n, |
cln::cl_I & | res | ||
) |
bool carl::try_parse< cln::cl_RA > | ( | const std::string & | n, |
cln::cl_RA & | res | ||
) |
bool carl::try_parse< mpq_class > | ( | const std::string & | n, |
mpq_class & | res | ||
) |
bool carl::try_parse< mpz_class > | ( | const std::string & | n, |
mpz_class & | res | ||
) |
T carl::tuple_accumulate | ( | Tuple && | t, |
T && | init, | ||
F && | f | ||
) |
Implements a functional fold (similar to std::accumulate
) for std::tuple
.
Combines all tuple elements using a combinator function f
and an initial value init
.
Definition at line 139 of file tuple_util.h.
auto carl::tuple_apply | ( | F && | f, |
Tuple && | t | ||
) |
Invokes a callable object f on a tuple of arguments.
This is basically std::apply
(available with C++17).
Definition at line 90 of file tuple_util.h.
auto carl::tuple_cat | ( | Tuple1 && | t1, |
Tuple2 && | t2 | ||
) |
Definition at line 23 of file tuple_util.h.
auto carl::tuple_foreach | ( | F && | f, |
Tuple && | t | ||
) |
Invokes a callable object f on every element of a tuple and returns a tuple containing the results.
This basically corresponds to the functional map(func, list)
.`
Definition at line 110 of file tuple_util.h.
auto carl::tuple_tail | ( | Tuple && | t | ) |
Returns a new tuple containing everything but the first element.
Definition at line 46 of file tuple_util.h.
Turns around the given relation symbol, in the sense that LESS (LEQ) and GREATER (GEQ) are swapped.
Definition at line 58 of file Relation.h.
|
inline |
|
inline |
|
inline |
std::string carl::typeString | ( | ) |
|
constexpr |
Casts an enum value to a value of the underlying number type.
Definition at line 21 of file enum_util.h.
void carl::uninterpreted_functions | ( | const Formula< Pol > & | f, |
std::set< UninterpretedFunction > & | ufs | ||
) |
Definition at line 42 of file Variables.h.
|
inline |
Definition at line 261 of file Variables.h.
int carl::univariateTarskiQuery | ( | const UnivariatePolynomial< Number > & | p, |
const UnivariatePolynomial< Number > & | q | ||
) |
int carl::univariateTarskiQuery | ( | const UnivariatePolynomial< Number > & | p, |
const UnivariatePolynomial< Number > & | q, | ||
const UnivariatePolynomial< Number > & | der_q | ||
) |
Definition at line 38 of file UnivariateTarskiQuery.h.
|
inline |
void carl::variables | ( | const BasicConstraint< Pol > & | c, |
carlVariables & | vars | ||
) |
Definition at line 139 of file BasicConstraint.h.
void carl::variables | ( | const Constraint< Pol > & | c, |
carlVariables & | vars | ||
) |
|
inline |
void carl::variables | ( | const Formula< Pol > & | f, |
carlVariables & | vars | ||
) |
|
inline |
Add the variables of the given monomial to the variables.
Definition at line 648 of file Monomial.h.
void carl::variables | ( | const MultivariatePolynomial< Coeff, Ordering, Policies > & | p, |
carlVariables & | vars | ||
) |
Add the variables of the given polynomial to the variables.
Definition at line 637 of file MultivariatePolynomial.h.
void carl::variables | ( | const MultivariateRoot< Poly > & | mr, |
carlVariables & | vars | ||
) |
Add the variables mentioned in underlying polynomial, excluding the root-variable "_z".
For example, with an underlying poly p(x,y,_z) we return {x,y}.
Definition at line 114 of file MultivariateRoot.h.
void carl::variables | ( | const SqrtEx< Poly > & | ex, |
carlVariables & | vars | ||
) |
|
inline |
Return the variables as collected by the methods above.
Definition at line 219 of file Variables.h.
void carl::variables | ( | const Term< Coeff > & | t, |
carlVariables & | vars | ||
) |
void carl::variables | ( | const UnivariatePolynomial< Coeff > & | p, |
carlVariables & | vars | ||
) |
Add the variables of the given polynomial to the variables.
Definition at line 823 of file UnivariatePolynomial.h.
|
inline |
Definition at line 47 of file VariableAssignment.h.
|
inline |
Target carl::variant_extend | ( | const boost::variant< Args... > & | variant | ) |
Definition at line 36 of file variant_util.h.
|
inline |
Definition at line 50 of file variant_util.h.
|
noexcept |
Checks whether a variant contains a value of a fiven type.
Definition at line 22 of file variant_util.h.
|
inline |
Formula<Pol> carl::visit_result | ( | const Formula< Pol > & | formula, |
Visitor | func | ||
) |
Recursively calls func on every subformula and return a new formula.
On every call of func, the passed formula is replaced by the result.
formula | Formula to visit. |
func | Function to call. |
Definition at line 49 of file Visit.h.
const signed carl::A_AND_B__IFF_C = -3 |
Definition at line 11 of file Comparison.h.
const signed carl::A_IFF_B = 2 |
Definition at line 7 of file Comparison.h.
const signed carl::A_IMPLIES_B = 1 |
Definition at line 8 of file Comparison.h.
const signed carl::A_XOR_B = -4 |
Definition at line 12 of file Comparison.h.
const signed carl::B_IMPLIES_A = -1 |
Definition at line 9 of file Comparison.h.
|
staticconstexpr |
Definition at line 17 of file Condition.h.
|
inlineconstexpr |
const dtl::enabled carl::dummy = {} |
|
static |
Call to initialize.
Definition at line 57 of file initialize.h.
int carl::last_assertion_code = 23 |
std::string carl::last_assertion_string |
|
static |
Definition at line 20 of file MultivariateHorner.h.
const signed carl::NOT__A_AND_B = -2 |
Definition at line 10 of file Comparison.h.
|
static |
Definition at line 196 of file operations.h.
|
static |
Definition at line 197 of file operations.h.
Definition at line 75 of file Condition.h.
Definition at line 71 of file Condition.h.
Definition at line 65 of file Condition.h.
Definition at line 66 of file Condition.h.
Definition at line 72 of file Condition.h.
Definition at line 68 of file Condition.h.
Definition at line 70 of file Condition.h.
Definition at line 69 of file Condition.h.
Definition at line 76 of file Condition.h.
Definition at line 81 of file Condition.h.
Definition at line 82 of file Condition.h.
Definition at line 73 of file Condition.h.
Definition at line 67 of file Condition.h.
Definition at line 74 of file Condition.h.
Definition at line 80 of file Condition.h.
Definition at line 55 of file Condition.h.
Definition at line 56 of file Condition.h.
Definition at line 57 of file Condition.h.
Definition at line 53 of file Condition.h.
Definition at line 52 of file Condition.h.
Definition at line 59 of file Condition.h.
Definition at line 58 of file Condition.h.
Definition at line 54 of file Condition.h.
Definition at line 49 of file Condition.h.
Definition at line 79 of file Condition.h.
Definition at line 78 of file Condition.h.
Definition at line 77 of file Condition.h.
|
static |
|
constexpr |
Definition at line 17 of file BitVector.h.
|
static |
Definition at line 60 of file Condition.h.
|
static |
Definition at line 85 of file Condition.h.