carl
24.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.