poly-0.1.0.0: Polynomials

Copyright(c) 2019 Andrew Lelechenko
LicenseBSD3
MaintainerAndrew Lelechenko <andrew.lelechenko@gmail.com>
Safe HaskellNone
LanguageHaskell2010

Data.Poly

Description

Polynomials.

Synopsis

Documentation

data Poly a Source #

Polynomials of one variable.

>>> :set -XOverloadedLists
>>> -- (1 + x) * (-1 + x) = (-1 + x^2)
>>> toPoly [1,1] * toPoly [-1,1]
Poly {unPoly = [-1,0,1]}
>>> :set -XOverloadedLists
>>> -- (1 + x) + (1 - x) = 2
>>> toPoly [1,1] + toPoly [1,-1]
Poly {unPoly = [2]}
Instances
Eq a => Eq (Poly a) Source # 
Instance details

Defined in Data.Poly.Uni.Dense

Methods

(==) :: Poly a -> Poly a -> Bool #

(/=) :: Poly a -> Poly a -> Bool #

(Eq a, Num a) => Num (Poly a) Source # 
Instance details

Defined in Data.Poly.Uni.Dense

Methods

(+) :: Poly a -> Poly a -> Poly a #

(-) :: Poly a -> Poly a -> Poly a #

(*) :: Poly a -> Poly a -> Poly a #

negate :: Poly a -> Poly a #

abs :: Poly a -> Poly a #

signum :: Poly a -> Poly a #

fromInteger :: Integer -> Poly a #

Ord a => Ord (Poly a) Source # 
Instance details

Defined in Data.Poly.Uni.Dense

Methods

compare :: Poly a -> Poly a -> Ordering #

(<) :: Poly a -> Poly a -> Bool #

(<=) :: Poly a -> Poly a -> Bool #

(>) :: Poly a -> Poly a -> Bool #

(>=) :: Poly a -> Poly a -> Bool #

max :: Poly a -> Poly a -> Poly a #

min :: Poly a -> Poly a -> Poly a #

Show a => Show (Poly a) Source # 
Instance details

Defined in Data.Poly.Uni.Dense

Methods

showsPrec :: Int -> Poly a -> ShowS #

show :: Poly a -> String #

showList :: [Poly a] -> ShowS #

(Eq a, Semiring a) => Semiring (Poly a) Source # 
Instance details

Defined in Data.Poly.Uni.Dense

Methods

plus :: Poly a -> Poly a -> Poly a #

zero :: Poly a #

times :: Poly a -> Poly a -> Poly a #

one :: Poly a #

(Eq a, Ring a) => Ring (Poly a) Source # 
Instance details

Defined in Data.Poly.Uni.Dense

Methods

negate :: Poly a -> Poly a #

unPoly :: Poly a -> Vector a Source #

Convert Poly to a vector of coefficients (first element corresponds to a constant term).

toPoly :: (Eq a, Num a) => Vector a -> Poly a Source #

Make Poly from a list of coefficients (first element corresponds to a constant term).

>>> :set -XOverloadedLists
>>> toPoly [1,2,3]
Poly {unPoly = [1,2,3]}
>>> :set -XOverloadedLists
>>> toPoly [0,0,0]
Poly {unPoly = []}

toPoly' :: (Eq a, Semiring a) => Vector a -> Poly a Source #

Make Poly from a vector of coefficients (first element corresponds to a constant term).

>>> :set -XOverloadedLists
>>> toPoly' [1,2,3]
Poly {unPoly = [1,2,3]}
>>> :set -XOverloadedLists
>>> toPoly' [0,0,0]
Poly {unPoly = []}