BWAPI
Defines | Functions
SPAR/AIModule/BWTA/vendors/CGAL/CGAL/polynomial_utils.h File Reference
#include <CGAL/basic.h>
#include <CGAL/Polynomial_traits_d.h>
Include dependency graph for polynomial_utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define CGAL_UNARY_POLY_FUNCTION(functor, function)
#define CGAL_UNARY_POLY_FUNCTION_INDEX(functor, function)
#define CGAL_BINARY_POLY_FUNCTION(functor, function)
#define CGAL_BINARY_POLY_FUNCTION_INDEX(functor, function)

Functions

template<typename Polynomial_d >
CGAL_BEGIN_NAMESPACE
Polynomial_traits_d
< Polynomial_d >
::Get_coefficient::result_type 
get_coefficient (const Polynomial_d &p, int i)
template<typename Polynomial_d >
Polynomial_traits_d
< Polynomial_d >
::Get_innermost_coefficient::result_type 
get_innermost_coefficient (const Polynomial_d &p, Exponent_vector ev)
template<typename Polynomial_d >
Polynomial_traits_d
< Polynomial_d >
::Swap::result_type 
swap (const Polynomial_d &p, int i, int j)
template<typename Polynomial_d >
Polynomial_traits_d
< Polynomial_d >
::Move::result_type 
move (const Polynomial_d &p, int i, int j)
template<typename Polynomial_d , typename Input_iterator >
Polynomial_traits_d
< Polynomial_d >
::Permute::result_type 
permute (const Polynomial_d &p, Input_iterator begin, Input_iterator end)
 CGAL_UNARY_POLY_FUNCTION_INDEX (Degree, degree)
 CGAL_UNARY_POLY_FUNCTION (Total_degree, total_degree)
 CGAL_UNARY_POLY_FUNCTION (Degree_vector, degree_vector)
 CGAL_UNARY_POLY_FUNCTION (Leading_coefficient, leading_coefficient)
 CGAL_UNARY_POLY_FUNCTION (Innermost_leading_coefficient, innermost_leading_coefficient)
 CGAL_UNARY_POLY_FUNCTION (Canonicalize, canonicalize)
 CGAL_UNARY_POLY_FUNCTION_INDEX (Differentiate, differentiate)
 CGAL_BINARY_POLY_FUNCTION (Evaluate, evaluate)
template<typename Polynomial_d >
Polynomial_traits_d
< Polynomial_d >
::Evaluate_homogeneous::result_type 
evaluate_homogeneous (const Polynomial_d &p, const typename Polynomial_traits_d< Polynomial_d >::Coefficient_type &num, const typename Polynomial_traits_d< Polynomial_d >::Coefficient_type &den)
template<typename Polynomial_d , typename Input_iterator >
CGAL::Coercion_traits
< typename Polynomial_traits_d
< Polynomial_d >
::Innermost_coefficient_type,
typename std::iterator_traits
< Input_iterator >::value_type >
::Type 
substitute (const Polynomial_d &p, Input_iterator begin, Input_iterator end)
template<typename Polynomial_d , typename Input_iterator >
Polynomial_traits_d
< Polynomial_d >
::Is_zero_at::result_type 
is_zero_at (const Polynomial_d &p, Input_iterator begin, Input_iterator end)
template<typename Polynomial_d , typename Input_iterator >
Polynomial_traits_d
< Polynomial_d >
::Sign_at::result_type 
sign_at (const Polynomial_d &p, Input_iterator begin, Input_iterator end)
template<typename Polynomial_d , typename Input_iterator >
CGAL::Coercion_traits
< typename Polynomial_traits_d
< Polynomial_d >
::Innermost_coefficient_type,
typename std::iterator_traits
< Input_iterator >::value_type >
::Type 
substitute_homogeneous (const Polynomial_d &p, Input_iterator begin, Input_iterator end)
template<typename Polynomial_d , typename Input_iterator >
Polynomial_traits_d
< Polynomial_d >
::Is_zero_at_homogeneous::result_type 
is_zero_at_homogeneous (const Polynomial_d &p, Input_iterator begin, Input_iterator end)
template<typename Polynomial_d , typename Input_iterator >
Polynomial_traits_d
< Polynomial_d >
::Sign_at_homogeneous::result_type 
sign_at_homogeneous (const Polynomial_d &p, Input_iterator begin, Input_iterator end)
 CGAL_UNARY_POLY_FUNCTION (Univariate_content, univariate_content)
 CGAL_UNARY_POLY_FUNCTION (Multivariate_content, multivariate_content)
template<typename Polynomial_d , typename OutputIterator >
OutputIterator square_free_factorize (const Polynomial_d &p, OutputIterator oi)
 CGAL_UNARY_POLY_FUNCTION (Make_square_free, make_square_free)
template<typename Polynomial_d >
void pseudo_division (const Polynomial_d &f, const Polynomial_d &g, Polynomial_d &q, Polynomial_d &r, typename Polynomial_traits_d< Polynomial_d >::Coefficient_type &D)
template<typename Polynomial_d >
Polynomial_traits_d
< Polynomial_d >
::Pseudo_division_quotient::result_type 
pseudo_division_quotient (const Polynomial_d &f, const Polynomial_d &g)
template<typename Polynomial_d >
Polynomial_traits_d
< Polynomial_d >
::Pseudo_division_remainder::result_type 
pseudo_division_remainder (const Polynomial_d &f, const Polynomial_d &g)
 CGAL_BINARY_POLY_FUNCTION (Gcd_up_to_constant_factor, gcd_up_to_constant_factor)
 CGAL_BINARY_POLY_FUNCTION (Integral_division_up_to_constant_factor, integral_division_up_to_constant_factor)
 CGAL_UNARY_POLY_FUNCTION (Univariate_content_up_to_constant_factor, univariate_content_up_to_constant_factor)
template<typename Polynomial_d , typename OutputIterator >
OutputIterator square_free_factorize_up_to_constant_factor (const Polynomial_d &p, OutputIterator oi)
 CGAL_BINARY_POLY_FUNCTION_INDEX (Shift, shift)
 CGAL_UNARY_POLY_FUNCTION_INDEX (Negate, negate)
 CGAL_UNARY_POLY_FUNCTION_INDEX (Invert, invert)
 CGAL_BINARY_POLY_FUNCTION_INDEX (Translate, translate)
template<typename Polynomial_d >
Polynomial_traits_d
< Polynomial_d >
::Translate_homogeneous::result_type 
translate_homogeneous (const Polynomial_d &f, const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &num, const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &den)
template<typename Polynomial_d >
Polynomial_traits_d
< Polynomial_d >
::Translate_homogeneous::result_type 
translate_homogeneous (const Polynomial_d &f, const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &num, const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &den, int index)
 CGAL_BINARY_POLY_FUNCTION_INDEX (Scale, scale)
template<typename Polynomial_d >
Polynomial_traits_d
< Polynomial_d >
::Scale_homogeneous::result_type 
scale_homogeneous (const Polynomial_d &f, const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &num, const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &den)
template<typename Polynomial_d >
Polynomial_traits_d
< Polynomial_d >
::Scale_homogeneous::result_type 
scale_homogeneous (const Polynomial_d &f, const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &num, const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &den, int index)
 CGAL_BINARY_POLY_FUNCTION (Resultant, resultant)
template<typename Polynomial_d , typename OutputIterator >
OutputIterator polynomial_subresultants (Polynomial_d p, Polynomial_d q, OutputIterator out)
template<typename Polynomial_d , typename OutputIterator >
OutputIterator principal_subresultants (Polynomial_d p, Polynomial_d q, OutputIterator out)
template<typename Polynomial_d , typename OutputIterator1 , typename OutputIterator2 , typename OutputIterator3 >
OutputIterator1 polynomial_subresultants_with_cofactors (Polynomial_d p, Polynomial_d q, OutputIterator1 sres_out, OutputIterator2 coP_out, OutputIterator3 coQ_out)
template<typename Polynomial_d , typename OutputIterator >
OutputIterator principal_sturm_habicht_sequence (Polynomial_d f, OutputIterator out)
template<typename Polynomial_d , typename OutputIterator >
OutputIterator sturm_habicht_sequence (Polynomial_d f, OutputIterator out)
template<typename Polynomial_d , typename OutputIterator1 , typename OutputIterator2 , typename OutputIterator3 >
OutputIterator1 sturm_habicht_sequence_with_cofactors (Polynomial_d f, OutputIterator1 stha_out, OutputIterator2 cof_out, OutputIterator3 cofx_out)
template<typename NT >
Polynomial< NT > diff (const Polynomial< NT > &p)
template<typename NT >
Polynomial< NT > scale_up (const Polynomial< NT > &p, const NT &a)
template<typename NT >
Polynomial< NT > scale_down (const Polynomial< NT > &p, const NT &b)
template<typename NT >
Polynomial< NT > scale (const Polynomial< NT > &p, const NT &a, const NT &b)
template<typename NT >
Polynomial< NT > translate_by_one (const Polynomial< NT > &p)
template<typename NT >
Polynomial< NT > translate (const Polynomial< NT > &p, const NT &c)
template<typename NT >
Polynomial< NT > translate (const Polynomial< NT > &p, const NT &a, const NT &b)
template<typename NT >
Polynomial< NT > reversal (const Polynomial< NT > &p)
template<class Polynomial >
bool is_square_free (const Polynomial &p)

Define Documentation

#define CGAL_BINARY_POLY_FUNCTION (   functor,
  function 
)
Value:
template <typename Polynomial_d>  inline                              \
  typename Polynomial_traits_d<Polynomial_d>::functor::result_type      \
  function(const Polynomial_d& p,                                       \
      const typename Polynomial_traits_d<Polynomial_d>::                \
      functor::second_argument_type& second                             \
  ){                                                                    \
    typedef Polynomial_traits_d<Polynomial_d> PT;                       \
    return typename PT::functor()(p,second);                            \
  }
#define CGAL_BINARY_POLY_FUNCTION_INDEX (   functor,
  function 
)
Value:
CGAL_BINARY_POLY_FUNCTION(functor,function)                           \
  template <typename Polynomial_d>  inline                              \
  typename Polynomial_traits_d<Polynomial_d>::functor::result_type      \
  function(const Polynomial_d& p,                                       \
      const typename Polynomial_traits_d<Polynomial_d>::                \
      functor::second_argument_type& second,                            \
      int index                                                         \
  ){                                                                    \
    typedef Polynomial_traits_d<Polynomial_d> PT;                       \
    return typename PT::functor()(p,second,index);                      \
  }
#define CGAL_UNARY_POLY_FUNCTION (   functor,
  function 
)
Value:
template <typename Polynomial_d>  inline                              \
  typename Polynomial_traits_d<Polynomial_d>::functor::result_type      \
  function(const Polynomial_d& p){                                      \
    typedef Polynomial_traits_d<Polynomial_d> PT;                       \
    return typename PT::functor()(p);                                   \
  }
#define CGAL_UNARY_POLY_FUNCTION_INDEX (   functor,
  function 
)
Value:
CGAL_UNARY_POLY_FUNCTION(functor,function);                           \
  template <typename Polynomial_d>  inline                              \
  typename Polynomial_traits_d<Polynomial_d>::functor::result_type      \
  function(const Polynomial_d& p, int index ){                          \
    typedef Polynomial_traits_d<Polynomial_d> PT;                       \
    typename PT::functor fo;                                            \
    return fo(p,index);                                                 \
  }

Function Documentation

CGAL_BINARY_POLY_FUNCTION ( Evaluate  ,
evaluate   
)
CGAL_BINARY_POLY_FUNCTION ( Gcd_up_to_constant_factor  ,
gcd_up_to_constant_factor   
)
CGAL_BINARY_POLY_FUNCTION ( Integral_division_up_to_constant_factor  ,
integral_division_up_to_constant_factor   
)
CGAL_BINARY_POLY_FUNCTION ( Resultant  ,
resultant   
)
CGAL_BINARY_POLY_FUNCTION_INDEX ( Shift  ,
shift   
)
CGAL_UNARY_POLY_FUNCTION ( Total_degree  ,
total_degree   
)
CGAL_UNARY_POLY_FUNCTION ( Degree_vector  ,
degree_vector   
)
CGAL_UNARY_POLY_FUNCTION ( Leading_coefficient  ,
leading_coefficient   
)
CGAL_UNARY_POLY_FUNCTION ( Innermost_leading_coefficient  ,
innermost_leading_coefficient   
)
CGAL_UNARY_POLY_FUNCTION ( Canonicalize  ,
canonicalize   
)
CGAL_UNARY_POLY_FUNCTION ( Univariate_content  ,
univariate_content   
)
CGAL_UNARY_POLY_FUNCTION ( Multivariate_content  ,
multivariate_content   
)
CGAL_UNARY_POLY_FUNCTION ( Make_square_free  ,
make_square_free   
)
CGAL_UNARY_POLY_FUNCTION ( Univariate_content_up_to_constant_factor  ,
univariate_content_up_to_constant_factor   
)
CGAL_UNARY_POLY_FUNCTION_INDEX ( Differentiate  ,
differentiate   
)
CGAL_UNARY_POLY_FUNCTION_INDEX ( Invert  ,
invert   
)
template<typename NT >
Polynomial<NT> diff ( const Polynomial< NT > &  p) [inline]

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename Polynomial_d >
Polynomial_traits_d<Polynomial_d>::Evaluate_homogeneous::result_type evaluate_homogeneous ( const Polynomial_d &  p,
const typename Polynomial_traits_d< Polynomial_d >::Coefficient_type &  num,
const typename Polynomial_traits_d< Polynomial_d >::Coefficient_type &  den 
) [inline]
template<typename Polynomial_d >
CGAL_BEGIN_NAMESPACE Polynomial_traits_d<Polynomial_d>::Get_coefficient::result_type get_coefficient ( const Polynomial_d &  p,
int  i 
) [inline]
template<typename Polynomial_d >
Polynomial_traits_d<Polynomial_d>::Get_innermost_coefficient::result_type get_innermost_coefficient ( const Polynomial_d &  p,
Exponent_vector  ev 
) [inline]
template<class Polynomial >
bool is_square_free ( const Polynomial p)

Here is the caller graph for this function:

template<typename Polynomial_d , typename Input_iterator >
Polynomial_traits_d<Polynomial_d>::Is_zero_at::result_type is_zero_at ( const Polynomial_d &  p,
Input_iterator  begin,
Input_iterator  end 
) [inline]

Here is the call graph for this function:

template<typename Polynomial_d , typename Input_iterator >
Polynomial_traits_d<Polynomial_d>::Is_zero_at_homogeneous::result_type is_zero_at_homogeneous ( const Polynomial_d &  p,
Input_iterator  begin,
Input_iterator  end 
) [inline]

Here is the call graph for this function:

template<typename Polynomial_d >
Polynomial_traits_d<Polynomial_d>::Move::result_type move ( const Polynomial_d &  p,
int  i,
int  j 
) [inline]

Here is the caller graph for this function:

template<typename Polynomial_d , typename Input_iterator >
Polynomial_traits_d<Polynomial_d>::Permute::result_type permute ( const Polynomial_d &  p,
Input_iterator  begin,
Input_iterator  end 
) [inline]

Here is the caller graph for this function:

template<typename Polynomial_d , typename OutputIterator >
OutputIterator polynomial_subresultants ( Polynomial_d  p,
Polynomial_d  q,
OutputIterator  out 
) [inline]
template<typename Polynomial_d , typename OutputIterator1 , typename OutputIterator2 , typename OutputIterator3 >
OutputIterator1 polynomial_subresultants_with_cofactors ( Polynomial_d  p,
Polynomial_d  q,
OutputIterator1  sres_out,
OutputIterator2  coP_out,
OutputIterator3  coQ_out 
) [inline]
template<typename Polynomial_d , typename OutputIterator >
OutputIterator principal_sturm_habicht_sequence ( Polynomial_d  f,
OutputIterator  out 
) [inline]
template<typename Polynomial_d , typename OutputIterator >
OutputIterator principal_subresultants ( Polynomial_d  p,
Polynomial_d  q,
OutputIterator  out 
) [inline]
template<typename Polynomial_d >
void pseudo_division ( const Polynomial_d &  f,
const Polynomial_d &  g,
Polynomial_d &  q,
Polynomial_d &  r,
typename Polynomial_traits_d< Polynomial_d >::Coefficient_type &  D 
) [inline]

Here is the caller graph for this function:

template<typename Polynomial_d >
Polynomial_traits_d<Polynomial_d>::Pseudo_division_quotient::result_type pseudo_division_quotient ( const Polynomial_d &  f,
const Polynomial_d &  g 
) [inline]
template<typename Polynomial_d >
Polynomial_traits_d<Polynomial_d>::Pseudo_division_remainder::result_type pseudo_division_remainder ( const Polynomial_d &  f,
const Polynomial_d &  g 
) [inline]
template<typename NT >
Polynomial<NT> reversal ( const Polynomial< NT > &  p) [inline]

Here is the call graph for this function:

template<typename NT >
Polynomial<NT> scale ( const Polynomial< NT > &  p,
const NT &  a,
const NT &  b 
) [inline]

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename NT >
Polynomial<NT> scale_down ( const Polynomial< NT > &  p,
const NT &  b 
) [inline]

Here is the call graph for this function:

template<typename Polynomial_d >
Polynomial_traits_d<Polynomial_d>::Scale_homogeneous::result_type scale_homogeneous ( const Polynomial_d &  f,
const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &  num,
const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &  den 
) [inline]

Here is the caller graph for this function:

template<typename Polynomial_d >
Polynomial_traits_d<Polynomial_d>::Scale_homogeneous::result_type scale_homogeneous ( const Polynomial_d &  f,
const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &  num,
const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &  den,
int  index 
) [inline]
template<typename NT >
Polynomial<NT> scale_up ( const Polynomial< NT > &  p,
const NT &  a 
) [inline]

Here is the call graph for this function:

template<typename Polynomial_d , typename Input_iterator >
Polynomial_traits_d<Polynomial_d>::Sign_at::result_type sign_at ( const Polynomial_d &  p,
Input_iterator  begin,
Input_iterator  end 
) [inline]

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename Polynomial_d , typename Input_iterator >
Polynomial_traits_d<Polynomial_d>::Sign_at_homogeneous::result_type sign_at_homogeneous ( const Polynomial_d &  p,
Input_iterator  begin,
Input_iterator  end 
) [inline]

Here is the call graph for this function:

template<typename Polynomial_d , typename OutputIterator >
OutputIterator square_free_factorize ( const Polynomial_d &  p,
OutputIterator  oi 
) [inline]
template<typename Polynomial_d , typename OutputIterator >
OutputIterator square_free_factorize_up_to_constant_factor ( const Polynomial_d &  p,
OutputIterator  oi 
) [inline]
template<typename Polynomial_d , typename OutputIterator >
OutputIterator sturm_habicht_sequence ( Polynomial_d  f,
OutputIterator  out 
)
template<typename Polynomial_d , typename OutputIterator1 , typename OutputIterator2 , typename OutputIterator3 >
OutputIterator1 sturm_habicht_sequence_with_cofactors ( Polynomial_d  f,
OutputIterator1  stha_out,
OutputIterator2  cof_out,
OutputIterator3  cofx_out 
)
template<typename Polynomial_d , typename Input_iterator >
CGAL::Coercion_traits< typename Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type, typename std::iterator_traits<Input_iterator>::value_type>::Type substitute ( const Polynomial_d &  p,
Input_iterator  begin,
Input_iterator  end 
) [inline]

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename Polynomial_d , typename Input_iterator >
CGAL::Coercion_traits< typename Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type, typename std::iterator_traits<Input_iterator>::value_type>::Type substitute_homogeneous ( const Polynomial_d &  p,
Input_iterator  begin,
Input_iterator  end 
) [inline]

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename Polynomial_d >
Polynomial_traits_d<Polynomial_d>::Swap::result_type swap ( const Polynomial_d &  p,
int  i,
int  j 
) [inline]

Here is the call graph for this function:

template<typename NT >
Polynomial<NT> translate ( const Polynomial< NT > &  p,
const NT &  c 
) [inline]

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename NT >
Polynomial<NT> translate ( const Polynomial< NT > &  p,
const NT &  a,
const NT &  b 
) [inline]

Here is the call graph for this function:

template<typename NT >
Polynomial<NT> translate_by_one ( const Polynomial< NT > &  p) [inline]

Here is the call graph for this function:

template<typename Polynomial_d >
Polynomial_traits_d<Polynomial_d>::Translate_homogeneous::result_type translate_homogeneous ( const Polynomial_d &  f,
const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &  num,
const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &  den 
) [inline]
template<typename Polynomial_d >
Polynomial_traits_d<Polynomial_d>::Translate_homogeneous::result_type translate_homogeneous ( const Polynomial_d &  f,
const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &  num,
const typename Polynomial_traits_d< Polynomial_d >::Innermost_coefficient_type &  den,
int  index 
) [inline]
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines