subhask-0.1.0.0: Type safe interface for programming in subcategories of Hask

Safe HaskellNone
LanguageHaskell2010

SubHask.Category.Polynomial

Synopsis

Documentation

type Polynomial a = Polynomial_ a a Source

The type of polynomials over an arbitrary ring.

See wikipedia for more detail.

data Polynomial_ a b where Source

FIXME: Polynomial_ takes two type parameters in order to be compatible with the Category hierarchy of classes. But currently, both types must match each other. Can/Should we generalize this to allow polynomials between types?

Constructors

Polynomial_ :: (ValidLogic a, Ring a, a ~ b) => ![a] -> Polynomial_ a b 

Instances

Category * Polynomial_ Source 
(Eq r, Show r) => Show (Polynomial_ r r) Source 
IsMutable (Polynomial_ a b) Source 
IsScalar r => FreeModule (Polynomial_ r r) Source 
IsScalar r => Module (Polynomial_ r r) Source 
(ValidLogic r, Ring r) => Ring (Polynomial_ r r) Source 
(ValidLogic r, Ring r) => Rig (Polynomial_ r r) Source 
(ValidLogic r, Ring r) => Rg (Polynomial_ r r) Source 
(Ring r, Abelian r) => Abelian (Polynomial_ r r) Source 
(ValidLogic r, Ring r) => Group (Polynomial_ r r) Source 
(ValidLogic r, Ring r) => Cancellative (Polynomial_ r r) Source 
(ValidLogic r, Ring r) => Monoid (Polynomial_ r r) Source 
Ring r => Semigroup (Polynomial_ r r) Source 
Eq b => Eq_ (Polynomial_ a b) Source 
(<:) (* -> * -> *) Polynomial_ Hask Source 
Sup (* -> * -> *) Hask Polynomial_ Hask Source 
Sup (* -> * -> *) Polynomial_ Hask Hask Source 
IsMutable (ProofOf * Polynomial_ a) Source 
(ValidLogic a, Ring a) => Ring (ProofOf * Polynomial_ a) Source 
(ValidLogic a, Ring a) => Rig (ProofOf * Polynomial_ a) Source 
(ValidLogic a, Ring a) => Rg (ProofOf * Polynomial_ a) Source 
(Ring a, Abelian a) => Abelian (ProofOf * Polynomial_ a) Source 
(ValidLogic a, Ring a) => Group (ProofOf * Polynomial_ a) Source 
(ValidLogic a, Ring a) => Cancellative (ProofOf * Polynomial_ a) Source 
(ValidLogic a, Ring a) => Monoid (ProofOf * Polynomial_ a) Source 
Ring a => Semigroup (ProofOf * Polynomial_ a) Source 
data ProofOf * Polynomial_ = ProofOf {} Source 
type ValidCategory * Polynomial_ a = (ValidLogic a, Ring a) Source 
type (><) * * (Polynomial_ r r) r = Polynomial_ r r Source 
data Mutable m (Polynomial_ a0 b0) = Mutable_AppT__AppT__ConT_SubHask_Category_Polynomial_Polynomial____VarT_a_1627667776____VarT_b_1627667777_ (PrimRef m (Polynomial_ a b)) Source 
data Mutable m (ProofOf * Polynomial_ a0) = Mutable_AppT__AppT__ConT_SubHask_Category_ProofOf___ConT_SubHask_Category_Polynomial_Polynomial_____VarT_a_1627668165_ (PrimRef m (ProofOf * Polynomial_ a)) Source 
type Scalar (Polynomial_ a b) = Scalar b Source 
type Logic (Polynomial_ a b) = Logic b Source 

sumList :: (t -> t -> t) -> [t] -> [t] -> [t] Source

pow :: Rig r => r -> Int -> r Source