Safe Haskell | None |
---|---|
Language | Haskell2010 |
- class UniqueList xs => IsUniqueList xs
- data LabPolynomial poly vars where
- LabelPolynomial :: (IsUniqueList vars, Length vars ~ Arity poly) => {..} -> LabPolynomial poly vars
- type family LabPolynomial' r ord vars where ...
- type LabUnipol r sym = LabPolynomial (Unipol r) '[sym]
- canonicalMap :: forall xs ys poly poly'. (SingI xs, SingI ys, IsSubsetOf xs ys, Wraps xs poly, Wraps ys poly', IsPolynomial poly, IsPolynomial poly', Coefficient poly ~ Coefficient poly') => LabPolynomial poly xs -> LabPolynomial poly' ys
- canonicalMap' :: (SingI xs, SingI ys, IsSubsetOf xs ys, Wraps xs poly, Wraps ys poly', IsPolynomial poly, IsPolynomial poly', Coefficient poly ~ Coefficient poly') => proxy poly' -> proxy' ys -> LabPolynomial poly xs -> LabPolynomial poly' ys
- class All ((FlipSym0 @@ ElemSym0) @@ ys) xs ~ True => IsSubsetOf xs ys
Documentation
class UniqueList xs => IsUniqueList xs Source #
UniqueList xs => IsUniqueList xs Source # | |
data LabPolynomial poly vars where Source #
LabelPolynomial :: (IsUniqueList vars, Length vars ~ Arity poly) => {..} -> LabPolynomial poly vars | |
|
(KnownSymbol symb, SingI [Symbol] vars, UniqueList vars, IsPolynomial poly, Wraps vars poly, (~) Bool (Elem Symbol symb vars) True) => IsLabel symb (LabPolynomial poly vars) Source # | This instance allows something like |
(Wraps vars poly, LeftModule Integer poly) => LeftModule Integer (LabPolynomial poly vars) Source # | |
(Wraps vars poly, LeftModule Natural poly) => LeftModule Natural (LabPolynomial poly vars) Source # | |
(Wraps vars poly, RightModule Integer poly) => RightModule Integer (LabPolynomial poly vars) Source # | |
(Wraps vars poly, RightModule Natural poly) => RightModule Natural (LabPolynomial poly vars) Source # | |
(Wraps vars poly, LeftModule (Scalar r) poly) => LeftModule (Scalar r) (LabPolynomial poly vars) Source # | |
(Wraps vars poly, RightModule (Scalar r) poly) => RightModule (Scalar r) (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Eq poly) => Eq (LabPolynomial poly vars) Source # | |
(UniqueList vars, (~) Nat (Arity poly) (Length Symbol vars), Num poly) => Num (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Ord poly) => Ord (LabPolynomial poly vars) Source # | |
(PrettyCoeff (Coefficient poly), IsOrderedPolynomial poly, SingI [Symbol] vars) => Show (LabPolynomial poly vars) Source # | |
(IntegralDomain poly, Wraps vars poly) => IntegralDomain (LabPolynomial poly vars) Source # | |
(GCDDomain poly, Wraps vars poly) => GCDDomain (LabPolynomial poly vars) Source # | |
(UFD poly, Wraps vars poly) => UFD (LabPolynomial poly vars) Source # | |
(PID poly, Wraps vars poly) => PID (LabPolynomial poly vars) Source # | |
(Euclidean poly, Wraps vars poly) => Euclidean (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Commutative poly) => Commutative (LabPolynomial poly vars) Source # | |
(UnitNormalForm poly, Wraps vars poly) => UnitNormalForm (LabPolynomial poly vars) Source # | |
(ZeroProductSemiring poly, Wraps vars poly) => ZeroProductSemiring (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Ring poly) => Ring (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Rig poly) => Rig (LabPolynomial poly vars) Source # | |
(Wraps vars poly, DecidableZero poly) => DecidableZero (LabPolynomial poly vars) Source # | |
(DecidableUnits poly, Wraps vars poly) => DecidableUnits (LabPolynomial poly vars) Source # | |
(DecidableAssociates poly, Wraps vars poly) => DecidableAssociates (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Unital poly) => Unital (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Group poly) => Group (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Multiplicative poly) => Multiplicative (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Semiring poly) => Semiring (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Monoidal poly) => Monoidal (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Additive poly) => Additive (LabPolynomial poly vars) Source # | |
(Wraps vars poly, Abelian poly) => Abelian (LabPolynomial poly vars) Source # | |
(IsOrderedPolynomial poly, Wraps vars poly) => IsOrderedPolynomial (LabPolynomial poly vars) Source # | |
(IsPolynomial poly, Wraps vars poly) => IsPolynomial (LabPolynomial poly vars) Source # | |
type MOrder (LabPolynomial poly vars) Source # | |
type Coefficient (LabPolynomial poly vars) Source # | |
type Arity (LabPolynomial poly vars) Source # | |
type family LabPolynomial' r ord vars where ... Source #
Convenient type-synonym for
wrapping LabPlynomial
and OrderedPolynomial
.Unipol
LabPolynomial' r ord '[x] = LabPolynomial (Unipol r) '[x] | |
LabPolynomial' r ord vars = LabPolynomial (OrderedPolynomial r ord (Length vars)) vars |
type LabUnipol r sym = LabPolynomial (Unipol r) '[sym] Source #
Convenient type-synonym for
wrapping univariate polynomial LabPlynomial
.Unipol
canonicalMap :: forall xs ys poly poly'. (SingI xs, SingI ys, IsSubsetOf xs ys, Wraps xs poly, Wraps ys poly', IsPolynomial poly, IsPolynomial poly', Coefficient poly ~ Coefficient poly') => LabPolynomial poly xs -> LabPolynomial poly' ys Source #
canonicalMap' :: (SingI xs, SingI ys, IsSubsetOf xs ys, Wraps xs poly, Wraps ys poly', IsPolynomial poly, IsPolynomial poly', Coefficient poly ~ Coefficient poly') => proxy poly' -> proxy' ys -> LabPolynomial poly xs -> LabPolynomial poly' ys Source #