mirror of https://github.com/CGAL/cgal
Forward declarations of ALL functions of this file added to avoid problems with some compilers.
This commit is contained in:
parent
072bb18304
commit
2cfc397069
|
|
@ -37,6 +37,104 @@
|
||||||
|
|
||||||
CGAL_BEGIN_NAMESPACE
|
CGAL_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
// Forward declarations of ALL functions of this file to avoid problems with
|
||||||
|
// some compilers.
|
||||||
|
template< class NT > inline bool may_have_multiple_root( const Polynomial<NT>& P );
|
||||||
|
|
||||||
|
namespace INTERN_POLYNOMIAL_GCD {
|
||||||
|
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcd_( const Polynomial<NT>& p1, const Polynomial<NT>& p2 );
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcd_innermost_coefficient_dispatch( const Polynomial<NT>& p1,
|
||||||
|
const Polynomial<NT>& p2, Field_tag );
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcd_innermost_coefficient_dispatch( const Polynomial<NT>& p1,
|
||||||
|
const Polynomial<NT>& p2, Unique_factorization_domain_tag tag );
|
||||||
|
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcd_( const Polynomial<NT>& p1, const Polynomial<NT>& p2,
|
||||||
|
::CGAL::Tag_false );
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcd_( const Polynomial<NT>& p1, const Polynomial<NT>& p2,
|
||||||
|
::CGAL::Tag_true tag );
|
||||||
|
#ifndef NiX_POLY_USE_PRIMITIVE_GCD
|
||||||
|
template <class NT>
|
||||||
|
Polynomial<NT> gcd_( Polynomial<NT> p1, Polynomial<NT> p2,
|
||||||
|
Unique_factorization_domain_tag );
|
||||||
|
#else
|
||||||
|
template <class NT>
|
||||||
|
Polynomial<NT> gcd_( Polynomial<NT> p1, Polynomial<NT> p2, UFDomain_tag );
|
||||||
|
#endif // NiX_POLY_USE_PRIMITIVE_GCD
|
||||||
|
|
||||||
|
template <class NT>
|
||||||
|
Polynomial<NT> gcd_( Polynomial<NT> p1, Polynomial<NT> p2, Field_tag );
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcd( const Polynomial<NT>& p1, const Polynomial<NT>& p2 );
|
||||||
|
template <class NT> inline
|
||||||
|
NT gcd_utcf_( const NT& a, const NT& b );
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcd_utcf_( const Polynomial<NT>& p1, const Polynomial<NT>& p2 );
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcd_utcf_( const Polynomial<NT>& p1, const Polynomial<NT>& p2,
|
||||||
|
::CGAL::Tag_false );
|
||||||
|
template <class NT>
|
||||||
|
Polynomial<NT> gcd_utcf_( Polynomial<NT> p1, Polynomial<NT> p2,
|
||||||
|
::CGAL::Tag_true );
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcd_utcf_( const Polynomial<NT>& p1, const Polynomial<NT>& p2,
|
||||||
|
Field_tag tag );
|
||||||
|
template <class NT>
|
||||||
|
NT content_utcf_( const Polynomial<NT>& p );
|
||||||
|
template <class NT>
|
||||||
|
Polynomial<NT> gcd_utcf_( Polynomial<NT> p1, Polynomial<NT> p2,
|
||||||
|
Integral_domain_tag );
|
||||||
|
|
||||||
|
} // namespace INTERN_POLYNOMIAL_GCD
|
||||||
|
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcd_utcf( const Polynomial<NT>& p1, const Polynomial<NT>& p2 );
|
||||||
|
|
||||||
|
namespace INTERN_POLYNOMIAL_GCD {
|
||||||
|
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcdex_( Polynomial<NT> x, Polynomial<NT> y, Polynomial<NT>& xf,
|
||||||
|
Polynomial<NT>& yf, ::CGAL::Tag_false );
|
||||||
|
template <class NT>
|
||||||
|
Polynomial<NT> gcdex_( Polynomial<NT> x, Polynomial<NT> y, Polynomial<NT>& xf,
|
||||||
|
Polynomial<NT>& yf, Field_tag );
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcdex_( Polynomial<NT> x, Polynomial<NT> y, Polynomial<NT>& xf,
|
||||||
|
Polynomial<NT>& yf, ::CGAL::Tag_true );
|
||||||
|
|
||||||
|
} // namespace INTERN_POLYNOMIAL_GCD
|
||||||
|
|
||||||
|
template <class NT> inline
|
||||||
|
Polynomial<NT> gcdex( Polynomial<NT> p1, Polynomial<NT> p2, Polynomial<NT>& f1,
|
||||||
|
Polynomial<NT>& f2 );
|
||||||
|
template <class NT>
|
||||||
|
Polynomial<NT> pseudo_gcdex(
|
||||||
|
#ifdef DOXYGEN_RUNNING
|
||||||
|
Polynomial<NT> p1, Polynomial<NT> p2,
|
||||||
|
Polynomial<NT>& f2, Polynomial<NT>& f2, NT& v
|
||||||
|
#else
|
||||||
|
Polynomial<NT> x, Polynomial<NT> y,
|
||||||
|
Polynomial<NT>& xf, Polynomial<NT>& yf, NT& vf
|
||||||
|
#endif // DOXYGEN_RUNNING
|
||||||
|
);
|
||||||
|
|
||||||
|
template <class NT, class OutputIterator1, class OutputIterator2> inline
|
||||||
|
int filtered_square_free_factorization( Polynomial<NT> p,
|
||||||
|
OutputIterator1 factors, OutputIterator2 multiplicities );
|
||||||
|
template <class NT, class OutputIterator1, class OutputIterator2> inline
|
||||||
|
int filtered_square_free_factorization_utcf( const Polynomial<NT>& p,
|
||||||
|
OutputIterator1 factors, OutputIterator2 multiplicities );
|
||||||
|
|
||||||
|
|
||||||
|
// end of prototypes
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
// TODO: This is a dummy-version of may_have_multiple_root. The original
|
// TODO: This is a dummy-version of may_have_multiple_root. The original
|
||||||
// EXACUS function is defined in polynomial_utils.h, but does currently
|
// EXACUS function is defined in polynomial_utils.h, but does currently
|
||||||
// not work because of the missing modular traits (and other stuff).
|
// not work because of the missing modular traits (and other stuff).
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue