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

📄 filtered_kernel.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/Filtered_kernel.h $// $Id: Filtered_kernel.h 28567 2006-02-16 14:30:13Z lsaboret $// //// Author(s)     : Daniel Russel <drussel@alumni.princeton.edu>#ifndef CGAL_POLYNOMIAL_FILTERED_POLYNOMIAL_KERNEL_H#define CGAL_POLYNOMIAL_FILTERED_POLYNOMIAL_KERNEL_H#include <CGAL/Polynomial/basic.h>#include <CGAL/Polynomial/Filtered_rational/Filtered_rational_traits.h>#include <CGAL/Polynomial/Filtered_kernel/Filtered_sign_at.h>#include <CGAL/Polynomial/Filtered_kernel/Filtered_root_multiplicity.h>#include <CGAL/Polynomial/Kernel/Root_container.h>#include <CGAL/Polynomial/Kernel/Is_even_multiplicity.h>#include <CGAL/Polynomial/Kernel/Is_rational.h>#include <CGAL/Polynomial/Kernel/To_rational.h>CGAL_POLYNOMIAL_BEGIN_NAMESPACE//! A filtered polynomial kernel./*! */template < class Traits_t, class RE>class Filtered_kernel: public internal::Filtered_rational_traits<Traits_t>{    typedef Filtered_kernel< Traits_t, RE > This;    typedef internal::Filtered_rational_traits<Traits_t> P;    public:        typedef RE Root_stack;        typedef typename RE::Root Root;        typedef typename P::Function Function;        typedef typename Function::NT NT;        typedef typename Root_stack::Traits Root_stack_traits;        Filtered_kernel(const Root_stack_traits &tr = Root_stack_traits()): ret_(tr){}        typedef typename internal::Filtered_sign_at<This> Sign_at;        Sign_at sign_at_object(const Function &p) const        {            return Sign_at(p, *this);        }        typedef internal::Filtered_root_multiplicity<This> Multiplicity;        Multiplicity multiplicity_object(const Function &p0) const        {            return Multiplicity(p0, *this);        }        typedef internal::Is_even_multiplicity<This> Is_even_multiplicity;        Is_even_multiplicity is_even_multiplicity_object(const Function &) const        {            return Is_even_multiplicity();        }        typedef internal::Is_rational<This> Is_rational;        Is_rational is_rational_object() const        {            return Is_rational();        }        typedef internal::To_rational<This> To_rational;        To_rational to_rational_object() const        {            return To_rational();        }//! Return a container for roots in an interval/*!  \todo make sure that the iterator has all the right types.*/        typedef internal::Root_container<This> Root_container;        friend class internal::Root_container<This>;        Root_container root_container_object(const typename P::Function &f,            const Root &lb=-Root::infinity(),            const Root &ub= Root::infinity()) const        {            return Root_container(f, lb, ub, *this);        }        Root_stack root_stack_object(const typename P::Function &f,            const Root &lb=-Root::infinity(),            const Root &ub= Root::infinity()) const        {            return Root_stack(f, lb, ub, root_stack_traits_object());        }        Root_stack_traits root_stack_traits_object() const        {            return ret_;        }    protected:        Root_stack_traits ret_;};CGAL_POLYNOMIAL_END_NAMESPACE#endif

⌨️ 快捷键说明

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