Copyright | (c) Masahiro Sakai 2012-2016 |
---|---|
License | BSD-style |
Maintainer | masahiro.sakai@gmail.com |
Stability | provisional |
Portability | non-portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Extensions |
|
ToySolver.Data.AlgebraicNumber.Root
Description
Manipulating polynomials for corresponding operations for algebraic numbers.
Reference:
Synopsis
- type Var = Int
- normalizePoly :: (Fractional k, Eq k) => UPolynomial k -> UPolynomial k
- rootAdd :: (Fractional k, Ord k) => UPolynomial k -> UPolynomial k -> UPolynomial k
- rootMul :: (Fractional k, Ord k) => UPolynomial k -> UPolynomial k -> UPolynomial k
- rootShift :: (Fractional k, Eq k) => k -> UPolynomial k -> UPolynomial k
- rootScale :: (Fractional k, Eq k) => k -> UPolynomial k -> UPolynomial k
- rootRecip :: (Fractional k, Eq k) => UPolynomial k -> UPolynomial k
- rootSimpPoly :: forall k l. (Fractional k, Ord k) => (l -> UPolynomial k) -> UPolynomial l -> UPolynomial k
- rootNthRoot :: (Fractional k, Ord k) => Integer -> UPolynomial k -> UPolynomial k
- lift2 :: forall k. (Fractional k, Ord k) => (forall a. Num a => a -> a -> a) -> UPolynomial k -> UPolynomial k -> UPolynomial k
- findPoly :: forall k. (Fractional k, Ord k) => Polynomial k Var -> [Polynomial k Var] -> UPolynomial k
Documentation
normalizePoly :: (Fractional k, Eq k) => UPolynomial k -> UPolynomial k Source #
rootAdd :: (Fractional k, Ord k) => UPolynomial k -> UPolynomial k -> UPolynomial k Source #
rootMul :: (Fractional k, Ord k) => UPolynomial k -> UPolynomial k -> UPolynomial k Source #
rootShift :: (Fractional k, Eq k) => k -> UPolynomial k -> UPolynomial k Source #
rootScale :: (Fractional k, Eq k) => k -> UPolynomial k -> UPolynomial k Source #
rootRecip :: (Fractional k, Eq k) => UPolynomial k -> UPolynomial k Source #
rootSimpPoly :: forall k l. (Fractional k, Ord k) => (l -> UPolynomial k) -> UPolynomial l -> UPolynomial k Source #
Given a polynomial P = Σ_i a_i x^i over L/K where each a_i is a root of polynomial f a_i
over K,
rootSimpPoly f P
computes a polynomial Q over K such that roots of P is a subset of roots of Q.
rootNthRoot :: (Fractional k, Ord k) => Integer -> UPolynomial k -> UPolynomial k Source #
lift2 :: forall k. (Fractional k, Ord k) => (forall a. Num a => a -> a -> a) -> UPolynomial k -> UPolynomial k -> UPolynomial k Source #
findPoly :: forall k. (Fractional k, Ord k) => Polynomial k Var -> [Polynomial k Var] -> UPolynomial k Source #
Given a polynomial P and polynomials {P1,…,Pn} over K, findPoly P [P1..Pn] computes a non-zero polynomial Q such that Q[P] = 0 modulo {P1,…,Pn}.