// Copyright (c) 2006-2008 Max-Planck-Institute Saarbruecken (Germany). // 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; either version 3 of the License, // or (at your option) any later version. // // 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$ // $Id$ // SPDX-License-Identifier: LGPL-3.0+ // // // Author(s) : Michael Hemmer // Ron Wein #ifndef CGAL_SQRT_EXTENSION_H #define CGAL_SQRT_EXTENSION_H // COMMENTS FROM EXACUS /*! \ingroup NiX_Sqrt_extension \brief represents an extension of a number type by one square root. An instance of this class represents an extension of the type NT by a square root of the type ROOT. In case NT and ROOT do not coincide, NT must be constructible from ROOT. The number type NT must be at least a model of the IntegralDomainWithoutDiv concept. An Sqrt_extension is a model of RealComparable if NT is RealComparable.\n The algebraic type of NiX::Sqrt_extension depends on the algebraic type of NT: - IntegralDomainWithoutDiv -> IntegralDomainWithoutDiv - IntegralDomain -> IntegralDomain - UFDomain -> IntegralDomain - EuclideanRing -> IntegralDomain - Field -> Field - FieldWithSqrt -> Field (not recommended) Note that NT and ROOT can themselves be an instance of NiX::Sqrt_extension, yielding a nested extension.\n Note that the extension of an UFDomain or EuclideanRing is just an IntegralDomain, since the extension in general destroys the unique factorization property. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif // CGAL_SQRT_EXTENSION_H // EOF