|
carl
25.04
Computer ARithmetic Library
|
Represent a dynamic root, also known as a "root expression". More...
#include <carl-logging/carl-logging.h>#include <carl-arith/poly/umvpoly/functions/Substitution.h>#include <carl-arith/core/Variable.h>#include <carl-arith/numbers/numbers.h>#include <carl-arith/ran/ran.h>#include <optional>#include <algorithm>#include <iostream>#include <tuple>

Go to the source code of this file.
Data Structures | |
| class | carl::MultivariateRoot< Poly > |
| struct | std::hash< carl::MultivariateRoot< Pol > > |
Namespaces | |
| carl | |
| carl is the main namespace for the library. | |
Functions | |
| template<typename Poly > | |
| bool | carl::operator== (const MultivariateRoot< Poly > &lhs, const MultivariateRoot< Poly > &rhs) |
| template<typename Poly > | |
| bool | carl::operator< (const MultivariateRoot< Poly > &lhs, const MultivariateRoot< Poly > &rhs) |
| template<typename P > | |
| std::ostream & | carl::operator<< (std::ostream &os, const MultivariateRoot< P > &mr) |
| template<typename Poly > | |
| void | carl::variables (const MultivariateRoot< Poly > &mr, carlVariables &vars) |
| Add the variables mentioned in underlying polynomial, excluding the root-variable "_z". More... | |
| template<typename Poly > | |
| 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. More... | |
| template<typename Poly > | |
| MultivariateRoot< Poly > | carl::convert_to_mvroot (const typename MultivariateRoot< Poly >::RAN &ran, Variable var) |
| template<typename Poly > | |
| 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". More... | |
Represent a dynamic root, also known as a "root expression".
It's a generalization of an algebraic real(= univariate poly having roots + root index). It uses a multivariate poly with distinguished, root-variable "_z" and an root index. If we want to "evaluate" this root, we need to plug in a subpoint with algebraic-real values for all variables that are not "_z". The result is basically an algebraic real. And since this algebraic real depends on the subpoint, you can also think of this as a multidimensional scalar function: A root(p(x1,x2,_z), 1) value represents a function f(x1,x2) of algReal^2 to an algebraic real. For example, f(a,b)= root(q(_z),1), where the resulting algebraic real is the 1. root of poly q(_z) := p(a,b,_z) after pluggin a and b into poly p.
Definition in file MultivariateRoot.h.