Flint2-0.1.0.0: src/Data/Number/Flint/NF/QQbar.hs
{-|
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