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 + -
显示快捷键?