⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rational_traits_base.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
字号:
// Copyright (c) 2005  Stanford University (USA).// All rights reserved.//// This file is part of CGAL (www.cgal.org); you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public License as// published by the Free Software Foundation; version 2.1 of the License.// See the file LICENSE.LGPL distributed with CGAL.//// Licensees holding a valid commercial license may use this file in// accordance with the commercial license agreement provided with the software.//// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.//// $URL: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.3-branch/Kinetic_data_structures/include/CGAL/Polynomial/internal/Rational/Rational_traits_base.h $// $Id: Rational_traits_base.h 35772 2007-01-22 18:36:00Z drussel $// //// Author(s)     : Daniel Russel <drussel@alumni.princeton.edu>#ifndef CGAL_POLYNOMIAL_INTERNAL_RATIONAL_TRAITS_BASE_H#define CGAL_POLYNOMIAL_INTERNAL_RATIONAL_TRAITS_BASE_H#include <CGAL/Polynomial/basic.h>#include <CGAL/Polynomial/internal/Rational/Sign_at_rational.h>#include <CGAL/Polynomial/internal/Rational/Sign_above_rational.h>#include <CGAL/Polynomial/internal/Rational/Sign_below_rational.h>#include <CGAL/Polynomial/internal/Rational/Compare_isolated_roots_in_interval.h>#include <CGAL/Polynomial/internal/Rational/Derivative.h>#include <CGAL/Polynomial/internal/Rational/Construct_function.h>#include <CGAL/Polynomial/internal/Rational/Are_negations.h>#include <CGAL/Polynomial/internal/Rational/Invert_variable.h>#include <CGAL/Polynomial/internal/Rational/Negate_variable.h>#include <CGAL/Polynomial/internal/Rational/Map_rational_interval_to_positive.h>#include <CGAL/Polynomial/internal/Rational/Rational_translate_zero.h>#include <CGAL/Polynomial/internal/Rational/Shift_power.h>#include <CGAL/Polynomial/internal/Rational/Rational_multiplicity.h>#include <CGAL/Polynomial/internal/Rational/Sturm_sequence.h>#include <CGAL/Polynomial/internal/Rational/Standard_sequence.h>#include <CGAL/Polynomial/internal/Rational/Sign_Sturm_sequence.h>#include <CGAL/Polynomial/internal/Rational/Root_bound_evaluator.h>#include <CGAL/Polynomial/internal/Rational/Pseudo_quotient.h>#include <CGAL/Polynomial/internal/Rational/Pseudo_remainder.h>#include <CGAL/Polynomial/internal/Rational/Quotient.h>#include <CGAL/Polynomial/internal/Rational/Remainder.h>CGAL_POLYNOMIAL_BEGIN_INTERNAL_NAMESPACEtemplate <class Poly>struct Rational_traits_base{  typedef Rational_traits_base<Poly> This;  typedef Poly Function;  typedef typename Function::NT FT;  //! The sign of a polynomial at a rational  typedef Sign_at_rational<Function> Sign_at;  Sign_at sign_at_object() const  {    return Sign_at();  }    //! The sign of a polynomial at a rational  typedef Sign_above_rational<This> Sign_after;  Sign_after sign_after_object() const  {    return Sign_after(*this);  }  //! The sign of a polynomial at a rational  typedef Sign_below_rational<This> Sign_before;  Sign_before sign_before_object() const  {    return Sign_before(*this);  }  //! Use strum sequences to compare two roots in an interval  typedef internal::Compare_isolated_roots_in_interval<This>  Compare_isolated_roots_in_interval;  Compare_isolated_roots_in_interval compare_isolated_roots_in_interval_object(const Function &p0,									       const Function &p1) const  {    return Compare_isolated_roots_in_interval(p0, p1, *this);  }  // constructions  //! Compute the quotient  typedef CGAL::POLYNOMIAL::internal::Quotient<Function> Quotient;  Quotient quotient_object() const  {    return Quotient();  }  //! Compute the remainder  typedef CGAL::POLYNOMIAL::internal::Remainder<Function> Remainder;  Remainder remainder_object() const  {    return Remainder();  }  //! Compute the pseudo quotient  typedef internal::Pseudo_quotient<Function> Pseudo_quotient;  Pseudo_quotient pseudo_quotient_object() const  {    return Pseudo_quotient();  }  //! Compute the pseudo remainder  typedef internal::Pseudo_remainder<Function> Pseudo_remainder;  Pseudo_remainder pseudo_remainder_object() const  {    return Pseudo_remainder();  }  //! Return true of two polynomials are negations of one another  typedef CGAL::POLYNOMIAL::internal::Are_negations<Function> Are_negations;  Are_negations are_negations_object() const  {    return Are_negations();  }  //! The the sturm sequence  typedef CGAL::POLYNOMIAL::internal::Sturm_sequence<This> Sturm_sequence;  Sturm_sequence Sturm_sequence_object(const Function &f, const Function &g) const  {    return Sturm_sequence(f, g, *this);  }  //! Compute the derivative  typedef internal::Derivative<Function> Differentiate;  Differentiate differentiate_object() const  {    return Differentiate();  }  //! The the sturm sequence  typedef CGAL::POLYNOMIAL::internal::Sign_Sturm_sequence<Sturm_sequence> Sign_Sturm_sequence;  Sign_Sturm_sequence sign_Sturm_sequence_object(const Function &f, const Function &g) const  {    return Sign_Sturm_sequence(f, g, *this);  }  //! The the standard sequence  typedef CGAL::POLYNOMIAL::internal::Standard_sequence<Sturm_sequence> Standard_sequence;  Standard_sequence standard_sequence_object(const Function &f) const  {    return Standard_sequence(f, *this);  }  //! A bound on the size of roots  typedef Root_bound_evaluator<Function> Root_bound;  Root_bound root_bound_object() const  {    return Root_bound();  }  //! The multiplicity of a rational number  typedef Rational_multiplicity<This> Multiplicity;  Multiplicity multiplicity_object() const  {    return Multiplicity(*this);  }  //! f(x) -> x^d f(1/x)  /*typedef CGAL::POLYNOMIAL::internal::Invert_variable<Function> Invert_variable;  Invert_variable invert_variable_object() const  {    return Invert_variable();    }*/  //! f(x) -> f(-x)  typedef CGAL::POLYNOMIAL::internal::Negate_variable<Function> Negate_variable;  Negate_variable negate_variable_object() const  {    return Negate_variable();  }  /*  //! Map an interval to positive reals  typedef CGAL::POLYNOMIAL::internal::Map_rational_interval_to_positive<This> Map_rational_interval_to_positive;  Map_rational_interval_to_positive map_rational_interval_to_positive_object(const Function &f) const  {    return Map_rational_interval_to_positive(f, *this);  }  //! Map an interval to positive reals  typedef CGAL::POLYNOMIAL::internal::Map_rational_interval_to_positive_2<This> Map_rational_interval_to_positive_2;  Map_rational_interval_to_positive_2 map_rational_interval_to_positive_2_object(const FT &a, const FT &b) const  {    return Map_rational_interval_to_positive_2(a,b, *this);  }  //! Translates zero by a rational number  typedef CGAL::POLYNOMIAL::internal::Rational_translate_zero<Function> Rational_translate_zero;  Rational_translate_zero rational_translate_zero_object(const FT &p) const  {    return Rational_translate_zero(p);  }  //! multiply by x^m for some m.  typedef internal::Shift_power<Function> Shift_power;  Shift_power shift_power_object(unsigned int p) const  {    return Shift_power(p);    }*/  //! Construct a function  typedef internal::Construct_function<Function> Construct_function;  Construct_function construct_function_object() const  {    return Construct_function();  }};CGAL_POLYNOMIAL_END_INTERNAL_NAMESPACE#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -