mirror of https://github.com/CGAL/cgal
*add non documented conjugate() to Sqrt_extension (root_of_2 testsuite)
*fix template specialization of Standardise (detected thanks to a bug of gcc-4.1.2) *add missing template ACDE_TAG and FP_TAG at few places
This commit is contained in:
parent
1d8d585685
commit
ba1c543c27
|
|
@ -47,12 +47,12 @@ struct Get_max_coefficient{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class NT, class Root>
|
template <class NT, class Root,class ACDE_TAG, class FP_TAG>
|
||||||
struct Get_max_coefficient<CGAL::Sqrt_extension<NT, Root> >{
|
struct Get_max_coefficient<CGAL::Sqrt_extension<NT, Root, ACDE_TAG, FP_TAG> >{
|
||||||
typedef Get_max_coefficient<NT> GMC;
|
typedef Get_max_coefficient<NT> GMC;
|
||||||
typedef typename GMC::result_type result_type;
|
typedef typename GMC::result_type result_type;
|
||||||
|
|
||||||
result_type operator () (const CGAL::Sqrt_extension<NT, Root>& a) {
|
result_type operator () (const CGAL::Sqrt_extension<NT, Root, ACDE_TAG, FP_TAG>& a) {
|
||||||
GMC gmc;
|
GMC gmc;
|
||||||
return std::max(std::max(gmc(a.a0()), gmc(a.a1())), gmc(NT(a.root())));
|
return std::max(std::max(gmc(a.a0()), gmc(a.a1())), gmc(NT(a.root())));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -153,9 +153,9 @@ struct Curve_renderer_traits_base
|
||||||
struct Rat_to_float {
|
struct Rat_to_float {
|
||||||
typedef Float result_type;
|
typedef Float result_type;
|
||||||
|
|
||||||
template <class X, class Y>
|
template <class X, class Y,class ACDE_TAG,class FP_TAG>
|
||||||
Float operator()(const Sqrt_extension<X, Y>& x) const {
|
Float operator()(const Sqrt_extension<X, Y, ACDE_TAG, FP_TAG>& x) const {
|
||||||
typename CGAL::Coercion_traits<Sqrt_extension<X, Y>, Float>::Cast
|
typename CGAL::Coercion_traits<Sqrt_extension<X, Y, ACDE_TAG, FP_TAG>, Float>::Cast
|
||||||
cast;
|
cast;
|
||||||
return cast(x);
|
return cast(x);
|
||||||
}
|
}
|
||||||
|
|
@ -502,9 +502,9 @@ struct Curve_renderer_traits<leda::bigfloat, class leda::rational>
|
||||||
struct Rat_to_float {
|
struct Rat_to_float {
|
||||||
typedef Float result_type;
|
typedef Float result_type;
|
||||||
|
|
||||||
template <class X, class Y>
|
template <class X, class Y,class ACDE_TAG,class FP_TAG>
|
||||||
Float operator()(const Sqrt_extension<X, Y>& x) const {
|
Float operator()(const Sqrt_extension<X, Y, ACDE_TAG, FP_TAG>& x) const {
|
||||||
typename CGAL::Coercion_traits<Sqrt_extension<X, Y>, Float>::Cast
|
typename CGAL::Coercion_traits<Sqrt_extension<X, Y, ACDE_TAG, FP_TAG>, Float>::Cast
|
||||||
cast;
|
cast;
|
||||||
return cast(x);
|
return cast(x);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,11 +43,11 @@ class Algebraic_extension_traits<CGAL::Sqrt_extension<COEFF,ROOT,ACDE_TAG,FP_TAG
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class COEFF_, class ROOT_>
|
template <class COEFF_, class ROOT_,class ACDE_TAG_,class FP_TAG_>
|
||||||
class Standardise<CGAL::Sqrt_extension<COEFF_,ROOT_,ACDE_TAG,FP_TAG> > {
|
class Standardise<CGAL::Sqrt_extension<COEFF_,ROOT_,ACDE_TAG_,FP_TAG_> > {
|
||||||
Standardise<COEFF_> standardise;
|
Standardise<COEFF_> standardise;
|
||||||
public:
|
public:
|
||||||
typedef CGAL::Sqrt_extension<COEFF_,ROOT_,ACDE_TAG,FP_TAG> Type_;
|
typedef CGAL::Sqrt_extension<COEFF_,ROOT_,ACDE_TAG_,FP_TAG_> Type_;
|
||||||
typedef Type_ argument_type;
|
typedef Type_ argument_type;
|
||||||
typedef Type_ result_type;
|
typedef Type_ result_type;
|
||||||
Type_ operator () (const Type_& a) const {
|
Type_ operator () (const Type_& a) const {
|
||||||
|
|
|
||||||
|
|
@ -213,6 +213,12 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Self conjugate() const
|
||||||
|
{
|
||||||
|
if(!is_extended_) return *this;
|
||||||
|
return Self(a0_,-a1_,root_);
|
||||||
|
}
|
||||||
|
|
||||||
//! Access operator for a0_, \c const
|
//! Access operator for a0_, \c const
|
||||||
inline const NT& a0() const { return a0_; }
|
inline const NT& a0() const { return a0_; }
|
||||||
inline const NT& alpha() const { return a0_; } //for backward compatibility
|
inline const NT& alpha() const { return a0_; } //for backward compatibility
|
||||||
|
|
|
||||||
|
|
@ -60,13 +60,13 @@ NT my_rand()
|
||||||
|
|
||||||
//----------------------
|
//----------------------
|
||||||
|
|
||||||
template<class T>
|
template<class T,class ACDE_TAG,class FP_TAG>
|
||||||
bool is_RO2_class(const CGAL::Sqrt_extension<T,T>& ){ return true;}
|
bool is_RO2_class(const CGAL::Sqrt_extension<T,T,ACDE_TAG,FP_TAG>& ){ return true;}
|
||||||
template<class T>
|
template<class T>
|
||||||
bool is_RO2_class(const T& ){ return false;}
|
bool is_RO2_class(const T& ){ return false;}
|
||||||
|
|
||||||
template<class T>
|
template<class T,class ACDE_TAG,class FP_TAG>
|
||||||
CGAL::Sqrt_extension<T,T> conjugate(const CGAL::Sqrt_extension<T,T>& R){
|
CGAL::Sqrt_extension<T,T,ACDE_TAG,FP_TAG> conjugate(const CGAL::Sqrt_extension<T,T,ACDE_TAG,FP_TAG>& R){
|
||||||
return R.conjugate();
|
return R.conjugate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue