{-| module : Data.Number.Flint.NF.QQbar copyright : (c) 2022 Hartmut Monien license : GNU GPL, version 2 or above (see LICENSE) maintainer : hmonien@uni-bonn.de = Algebraic numbers A @QQbar@ represents a real or complex algebraic number (an element of \(\overline{\mathbb{Q}}\)) by its unique reduced minimal polynomial in \(\mathbb{Z}[x]\) and an isolating complex interval. The precision of isolating intervals is maintained automatically to ensure that all operations on @QQbar@ instances are exact. This representation is useful for working with individual algebraic numbers of moderate degree (up to 100, say). Arithmetic in this representation is expensive: an arithmetic operation on numbers of degrees /m/ and /n/ involves computing and then factoring an annihilating polynomial of degree /mn/ and potentially also performing numerical root-finding. For doing repeated arithmetic, it is generally more efficient to work with the @CA@ type in a fixed number field. The @QQbar@ type is used internally by the @CA@ type to represent the embedding of number fields in \(\mathbb{R}\) or \(\mathbb{C}\) and to decide predicates for algebraic numbers. -} module Data.Number.Flint.NF.QQbar ( module Data.Number.Flint.NF.QQbar.FFI, ) where import Data.Number.Flint.NF.QQbar.FFI