carl  24.04
Computer ARithmetic Library
carl::ran::interval::FieldExtensions< Rational, Poly > Class Template Reference

This class can be used to construct iterated field extensions from a sequence of real algebraic numbers. More...

#include <FieldExtensions.h>

Collaboration diagram for carl::ran::interval::FieldExtensions< Rational, Poly >:

Public Member Functions

std::pair< bool, Poly > extend (Variable v, const IntRepRealAlgebraicNumber< Rational > &r)
 Extend the current number field with the field extension defined by r. More...
 
Poly embed (const Poly &poly)
 

Private Attributes

std::map< Variable, IntRepRealAlgebraicNumber< Rational > > mModel
 

Detailed Description

template<typename Rational, typename Poly>
class carl::ran::interval::FieldExtensions< Rational, Poly >

This class can be used to construct iterated field extensions from a sequence of real algebraic numbers.

In particular it makes sure that the minimal polynomials are "reduced", i.e. making sure that they are minimal polynomial w.r.t. the current extension field.

Definition at line 128 of file FieldExtensions.h.

Member Function Documentation

◆ embed()

template<typename Rational , typename Poly >
Poly carl::ran::interval::FieldExtensions< Rational, Poly >::embed ( const Poly &  poly)
inline

Definition at line 201 of file FieldExtensions.h.

◆ extend()

template<typename Rational , typename Poly >
std::pair<bool,Poly> carl::ran::interval::FieldExtensions< Rational, Poly >::extend ( Variable  v,
const IntRepRealAlgebraicNumber< Rational > &  r 
)
inline

Extend the current number field with the field extension defined by r.

The minimal polynomial of r (with is a minimal polynomials in Q[x]) is embedded into the current number field and the minimal polynomial for r within this number field is computed. The resulting polynomial is this minimal polynomial over the current number field.

We may have one of two cases:

  • We can eliminate v by substitution with some term
  • We create a new field extension and may have to reduce the lifting polynomial

In the first case, we return true and the term to substitute with. In the second case, we return false and the new minimal polynomial.

Definition at line 167 of file FieldExtensions.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ mModel

template<typename Rational , typename Poly >
std::map<Variable,IntRepRealAlgebraicNumber<Rational> > carl::ran::interval::FieldExtensions< Rational, Poly >::mModel
private

Definition at line 130 of file FieldExtensions.h.


The documentation for this class was generated from the following file: