polynomial.h
来自「CGAL is a collaborative effort of severa」· C头文件 代码 · 共 1,774 行 · 第 1/5 页
H
1,774 行
{ return (p1 % Polynomial<int>(num)); } // lefthand side inline bool operator == (const int& num, const Polynomial<int>& p) { return ( (Polynomial<int>(num)-p).sign() == CGAL::ZERO );} inline bool operator != (const int& num, const Polynomial<int>& p) { return ( (Polynomial<int>(num)-p).sign() != CGAL::ZERO );} inline bool operator < (const int& num, const Polynomial<int>& p) { return ( (Polynomial<int>(num)-p).sign() == CGAL::NEGATIVE );} inline bool operator <= (const int& num, const Polynomial<int>& p) { return ( (Polynomial<int>(num)-p).sign() != CGAL::POSITIVE );} inline bool operator > (const int& num, const Polynomial<int>& p) { return ( (Polynomial<int>(num)-p).sign() == CGAL::POSITIVE );} inline bool operator >= (const int& num, const Polynomial<int>& p) { return ( (Polynomial<int>(num)-p).sign() != CGAL::NEGATIVE );} // righthand side inline bool operator == (const Polynomial<int>& p, const int& num) { return ( (p-Polynomial<int>(num)).sign() == CGAL::ZERO );} inline bool operator != (const Polynomial<int>& p, const int& num) { return ( (p-Polynomial<int>(num)).sign() != CGAL::ZERO );} inline bool operator < (const Polynomial<int>& p, const int& num) { return ( (p-Polynomial<int>(num)).sign() == CGAL::NEGATIVE );} inline bool operator <= (const Polynomial<int>& p, const int& num) { return ( (p-Polynomial<int>(num)).sign() != CGAL::POSITIVE );} inline bool operator > (const Polynomial<int>& p, const int& num) { return ( (p-Polynomial<int>(num)).sign() == CGAL::POSITIVE );} inline bool operator >= (const Polynomial<int>& p, const int& num) { return ( (p-Polynomial<int>(num)).sign() != CGAL::NEGATIVE );}// SPECIALIZING pure int params: // lefthand side template <class NT> Polynomial<NT> operator + (const int& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num) + p2); } template <class NT> Polynomial<NT> operator - (const int& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num) - p2); } template <class NT> Polynomial<NT> operator * (const int& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num) * p2); } template <class NT> Polynomial<NT> operator / (const int& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num)/p2); } template <class NT> Polynomial<NT> operator % (const int& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num)%p2); } // righthand side template <class NT> Polynomial<NT> operator + (const Polynomial<NT>& p1, const int& num) { return (p1 + Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator - (const Polynomial<NT>& p1, const int& num) { return (p1 - Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator * (const Polynomial<NT>& p1, const int& num) { return (p1 * Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator / (const Polynomial<NT>& p1, const int& num) { return (p1 / Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator % (const Polynomial<NT>& p1, const int& num) { return (p1 % Polynomial<NT>(num)); } // lefthand side template <class NT> bool operator == (const int& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() == CGAL::ZERO );} template <class NT> bool operator != (const int& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() != CGAL::ZERO );} template <class NT> bool operator < (const int& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() == CGAL::NEGATIVE );} template <class NT> bool operator <= (const int& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() != CGAL::POSITIVE );} template <class NT> bool operator > (const int& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() == CGAL::POSITIVE );} template <class NT> bool operator >= (const int& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() != CGAL::NEGATIVE );} // righthand side template <class NT> bool operator == (const Polynomial<NT>& p, const int& num) { return ( (p-Polynomial<NT>(num)).sign() == CGAL::ZERO );} template <class NT> bool operator != (const Polynomial<NT>& p, const int& num) { return ( (p-Polynomial<NT>(num)).sign() != CGAL::ZERO );} template <class NT> bool operator < (const Polynomial<NT>& p, const int& num) { return ( (p-Polynomial<NT>(num)).sign() == CGAL::NEGATIVE );} template <class NT> bool operator <= (const Polynomial<NT>& p, const int& num) { return ( (p-Polynomial<NT>(num)).sign() != CGAL::POSITIVE );} template <class NT> bool operator > (const Polynomial<NT>& p, const int& num) { return ( (p-Polynomial<NT>(num)).sign() == CGAL::POSITIVE );} template <class NT> bool operator >= (const Polynomial<NT>& p, const int& num) { return ( (p-Polynomial<NT>(num)).sign() != CGAL::NEGATIVE );}// SPECIALIZING inline to : // lefthand side inline Polynomial<double> operator + (const double& num, const Polynomial<double>& p2) { return (Polynomial<double>(num) + p2); } inline Polynomial<double> operator - (const double& num, const Polynomial<double>& p2) { return (Polynomial<double>(num) - p2); } inline Polynomial<double> operator * (const double& num, const Polynomial<double>& p2) { return (Polynomial<double>(num) * p2); } inline Polynomial<double> operator / (const double& num, const Polynomial<double>& p2) { return (Polynomial<double>(num)/p2); } inline Polynomial<double> operator % (const double& num, const Polynomial<double>& p2) { return (Polynomial<double>(num)%p2); } // righthand side inline Polynomial<double> operator + (const Polynomial<double>& p1, const double& num) { return (p1 + Polynomial<double>(num)); } inline Polynomial<double> operator - (const Polynomial<double>& p1, const double& num) { return (p1 - Polynomial<double>(num)); } inline Polynomial<double> operator * (const Polynomial<double>& p1, const double& num) { return (p1 * Polynomial<double>(num)); } inline Polynomial<double> operator / (const Polynomial<double>& p1, const double& num) { return (p1 / Polynomial<double>(num)); } inline Polynomial<double> operator % (const Polynomial<double>& p1, const double& num) { return (p1 % Polynomial<double>(num)); } // lefthand side inline bool operator == (const double& num, const Polynomial<double>& p) { return ( (Polynomial<double>(num)-p).sign() == CGAL::ZERO );} inline bool operator != (const double& num, const Polynomial<double>& p) { return ( (Polynomial<double>(num)-p).sign() != CGAL::ZERO );} inline bool operator < (const double& num, const Polynomial<double>& p) { return ( (Polynomial<double>(num)-p).sign() == CGAL::NEGATIVE );} inline bool operator <= (const double& num, const Polynomial<double>& p) { return ( (Polynomial<double>(num)-p).sign() != CGAL::POSITIVE );} inline bool operator > (const double& num, const Polynomial<double>& p) { return ( (Polynomial<double>(num)-p).sign() == CGAL::POSITIVE );} inline bool operator >= (const double& num, const Polynomial<double>& p) { return ( (Polynomial<double>(num)-p).sign() != CGAL::NEGATIVE );} // righthand side inline bool operator == (const Polynomial<double>& p, const double& num) { return ( (p-Polynomial<double>(num)).sign() == CGAL::ZERO );} inline bool operator != (const Polynomial<double>& p, const double& num) { return ( (p-Polynomial<double>(num)).sign() != CGAL::ZERO );} inline bool operator < (const Polynomial<double>& p, const double& num) { return ( (p-Polynomial<double>(num)).sign() == CGAL::NEGATIVE );} inline bool operator <= (const Polynomial<double>& p, const double& num) { return ( (p-Polynomial<double>(num)).sign() != CGAL::POSITIVE );} inline bool operator > (const Polynomial<double>& p, const double& num) { return ( (p-Polynomial<double>(num)).sign() == CGAL::POSITIVE );} inline bool operator >= (const Polynomial<double>& p, const double& num) { return ( (p-Polynomial<double>(num)).sign() != CGAL::NEGATIVE );}// SPECIALIZING pure double params: // lefthand side template <class NT> Polynomial<NT> operator + (const double& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num) + p2); } template <class NT> Polynomial<NT> operator - (const double& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num) - p2); } template <class NT> Polynomial<NT> operator * (const double& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num) * p2); } template <class NT> Polynomial<NT> operator / (const double& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num)/p2); } template <class NT> Polynomial<NT> operator % (const double& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num)%p2); } // righthand side template <class NT> Polynomial<NT> operator + (const Polynomial<NT>& p1, const double& num) { return (p1 + Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator - (const Polynomial<NT>& p1, const double& num) { return (p1 - Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator * (const Polynomial<NT>& p1, const double& num) { return (p1 * Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator / (const Polynomial<NT>& p1, const double& num) { return (p1 / Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator % (const Polynomial<NT>& p1, const double& num) { return (p1 % Polynomial<NT>(num)); } // lefthand side template <class NT> bool operator == (const double& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() == CGAL::ZERO );} template <class NT> bool operator != (const double& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() != CGAL::ZERO );} template <class NT> bool operator < (const double& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() == CGAL::NEGATIVE );} template <class NT> bool operator <= (const double& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() != CGAL::POSITIVE );} template <class NT> bool operator > (const double& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() == CGAL::POSITIVE );} template <class NT> bool operator >= (const double& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() != CGAL::NEGATIVE );} // righthand side template <class NT> bool operator == (const Polynomial<NT>& p, const double& num) { return ( (p-Polynomial<NT>(num)).sign() == CGAL::ZERO );} template <class NT> bool operator != (const Polynomial<NT>& p, const double& num) { return ( (p-Polynomial<NT>(num)).sign() != CGAL::ZERO );} template <class NT> bool operator < (const Polynomial<NT>& p, const double& num) { return ( (p-Polynomial<NT>(num)).sign() == CGAL::NEGATIVE );} template <class NT> bool operator <= (const Polynomial<NT>& p, const double& num) { return ( (p-Polynomial<NT>(num)).sign() != CGAL::POSITIVE );} template <class NT> bool operator > (const Polynomial<NT>& p, const double& num) { return ( (p-Polynomial<NT>(num)).sign() == CGAL::POSITIVE );} template <class NT> bool operator >= (const Polynomial<NT>& p, const double& num) { return ( (p-Polynomial<NT>(num)).sign() != CGAL::NEGATIVE );}// SPECIALIZE_FUNCTION ORIGINAL // lefthand side template <class NT> Polynomial<NT> operator + (const NT& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num) + p2); } template <class NT> Polynomial<NT> operator - (const NT& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num) - p2); } template <class NT> Polynomial<NT> operator * (const NT& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num) * p2); } template <class NT> Polynomial<NT> operator / (const NT& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num)/p2); } template <class NT> Polynomial<NT> operator % (const NT& num, const Polynomial<NT>& p2) { return (Polynomial<NT>(num)%p2); } // righthand side template <class NT> Polynomial<NT> operator + (const Polynomial<NT>& p1, const NT& num) { return (p1 + Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator - (const Polynomial<NT>& p1, const NT& num) { return (p1 - Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator * (const Polynomial<NT>& p1, const NT& num) { return (p1 * Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator / (const Polynomial<NT>& p1, const NT& num) { return (p1 / Polynomial<NT>(num)); } template <class NT> Polynomial<NT> operator % (const Polynomial<NT>& p1, const NT& num) { return (p1 % Polynomial<NT>(num)); } // lefthand side template <class NT> bool operator == (const NT& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() == CGAL::ZERO );} template <class NT> bool operator != (const NT& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() != CGAL::ZERO );} template <class NT> bool operator < (const NT& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() == CGAL::NEGATIVE );} template <class NT> bool operator <= (const NT& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() != CGAL::POSITIVE );} template <class NT> bool operator > (const NT& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() == CGAL::POSITIVE );} template <class NT> bool operator >= (const NT& num, const Polynomial<NT>& p) { return ( (Polynomial<NT>(num)-p).sign() != CGAL::NEGATIVE );} // righthand side template <class NT> bool operator == (const Polynomial<NT>& p, const NT& num) { return ( (p-Polynomial<NT>(num)).sign() == CGAL::ZERO );} template <class NT> bool operator != (const Polynomial<NT>& p, const NT& num) { return ( (p-Polynomial<NT>(num)).sign() != CGAL::ZERO );} template <class NT> bool operator < (const Polynomial<NT>& p, const NT& num) { return ( (p-Polynomial<NT>(num)).sign() == CGAL::NEGATIVE );} template <class NT> bool operator <= (const Polynomial<NT>& p, const NT& num) { return ( (p-Polynomial<NT>(num)).sign() != CGAL::POSITIVE );} template <class NT> bool operator > (const Polynomial<NT>& p, const NT& num) { return ( (p-Polynomial<NT>(num)).sign() == CGAL::POSITIVE );} template <class NT> bool operator >= (const Polynomial<NT>& p, const NT& num) { return ( (p-Polynomial<NT>(num)).sign() != CGAL::NEGATIVE );}// SPECIALIZE_FUNCTION(NT,int double) END//------------------------------------------------------------------template <class NT> void print_monomial(std::ostream& os, const NT&
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?