CGAL 4.7 - Number Types
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Relates Algebraic Extensions

Classes

class  CGAL::Root_of_traits< RT >
 For a RealEmbeddable IntegralDomain RT, the class template Root_of_traits<RT> associates a type Root_of_2, which represents algebraic numbers of degree 2 over RT. More...
 
class  CGAL::Sqrt_extension< NT, ROOT, DifferentExtensionComparable, FilterPredicates >
 An instance of this class represents an extension of the type NT by one square root of the type ROOT. More...
 

Functions

template<typename RT , typename OutputIterator >
OutputIterator CGAL::compute_roots_of_2 (const RT &a, const RT &b, const RT &c, OutputIterator oit)
 The function compute_roots_of_2() solves a univariate polynomial as it is defined by the coefficients given to the function. More...
 
template<typename RT >
Root_of_traits< RT >::Root_of_2 CGAL::make_root_of_2 (const RT &a, const RT &b, const RT &c, bool s)
 The function make_root_of_2() constructs an algebraic number of degree 2 over a ring number type. More...
 
template<typename RT >
Root_of_traits< RT >::Root_of_2 CGAL::make_root_of_2 (RT alpha, RT beta, RT gamma)
 The function make_root_of_2() constructs an algebraic number of degree 2 over a ring number type. More...
 
template<typename RT >
Root_of_traits< RT >::Root_of_2 CGAL::make_sqrt (const RT &x)
 The function make_sqrt() constructs a square root of a given value of type RT. More...
 

Function Documentation

template<typename RT , typename OutputIterator >
OutputIterator CGAL::compute_roots_of_2 ( const RT &  a,
const RT &  b,
const RT &  c,
OutputIterator  oit 
)

The function compute_roots_of_2() solves a univariate polynomial as it is defined by the coefficients given to the function.

The solutions are written into the given OutputIterator. Writes the real roots of the polynomial aX2+bX+c into oit in ascending order.

OutputIterator is required to accept Root_of_traits<RT>::Root_of_2.

Multiplicities are not reported.

Precondition
RT is an IntegralDomainWithoutDivision.
a0 or b0.
See Also
RootOf_2
CGAL::Root_of_traits<RT>
CGAL::make_root_of_2()
CGAL::make_sqrt()
CGAL::Sqrt_extension<NT,ROOT>

#include <CGAL/Root_of_traits.h>

template<typename RT >
Root_of_traits<RT>::Root_of_2 CGAL::make_root_of_2 ( const RT &  a,
const RT &  b,
const RT &  c,
bool  s 
)

The function make_root_of_2() constructs an algebraic number of degree 2 over a ring number type.

Returns the smallest real root of the polynomial aX2+bX+c if s is true, and the largest root is s is false.

Precondition
RT is an IntegralDomainWithoutDivision.
The polynomial has at least one real root.
See Also
RootOf_2
CGAL::Root_of_traits<RT>
CGAL::make_sqrt()
CGAL::compute_roots_of_2()
CGAL::Sqrt_extension<NT,ROOT>

#include <CGAL/Root_of_traits.h>

template<typename RT >
Root_of_traits<RT>::Root_of_2 CGAL::make_root_of_2 ( RT  alpha,
RT  beta,
RT  gamma 
)

The function make_root_of_2() constructs an algebraic number of degree 2 over a ring number type.

Constructs the number α+βγ.

Precondition
RT is an IntegralDomainWithoutDivision.
γ0
See Also
RootOf_2
CGAL::Root_of_traits<RT>
CGAL::make_sqrt()
CGAL::compute_roots_of_2()
CGAL::Sqrt_extension<NT,ROOT>

#include <CGAL/Root_of_traits.h>

template<typename RT >
Root_of_traits<RT>::Root_of_2 CGAL::make_sqrt ( const RT &  x)

The function make_sqrt() constructs a square root of a given value of type RT.

Depending on the type RT the square root may be returned in a new type that can represent algebraic extensions of degree 2.

Returns
x.
Precondition
RT is a RealEmbeddable IntegralDomain.
x0
See Also
RootOf_2
CGAL::make_root_of_2()
CGAL::Root_of_traits<RT>

#include <CGAL/Root_of_traits.h>