// Copyright (c) 2006-2009 Max-Planck-Institute Saarbruecken (Germany). // All rights reserved. // // This file is part of CGAL (www.cgal.org) // // $URL: https://github.com/CGAL/cgal/blob/v5.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/shear.h $ // $Id: shear.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Michael Kerber // // ============================================================================ #ifndef CGAL_ACK_SHEAR_H #define CGAL_ACK_SHEAR_H 1 #include #include #include #include #include #include #include #include namespace CGAL { namespace internal { /*! \ingroup NiX_bivariate_polynomial_hacks * \brief Computes the polynomial f(x+sy,y) */ template CGAL::Polynomial > shear(const CGAL::Polynomial >& f,NT s) { typedef CGAL::Polynomial Poly_1; typedef CGAL::Polynomial Poly_2; Poly_1 x(NT(0),NT(1)); Poly_1 zero(NT(0)); Poly_1 one(NT(1)); Poly_2 for_x(x,Poly_1(NT(s))); Poly_2 for_y(zero,one); std::vector coeffs; coeffs.push_back(for_x); coeffs.push_back(for_y); return typename CGAL::Polynomial_traits_d::Substitute() (f,coeffs.begin(), coeffs.end()); } } // namespace internal } //namespace CGAL #endif // NiX_BIVARIATE_POLYNOMIAL_HACKS_H // EOF