| Copyright | (c) Ross Paterson 2011 |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | [email protected] |
| Stability | provisional |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.YAP.WeylAlgebra
Contents
Description
An example instance of the algebraic classes: Weyl algebras.
Synopsis
- data Weyl a
- fromPolynomial :: Polynomial a -> Weyl a
- diff :: Semiring a => Weyl a
- fromCoefficients :: [Polynomial a] -> Weyl a
- order :: (Eq a, AdditiveMonoid a) => Weyl a -> Int
- coefficients :: (Eq a, AdditiveMonoid a) => Weyl a -> [Polynomial a]
- evaluate :: Semiring a => Weyl a -> Polynomial a -> Polynomial a
- evaluateWith :: (Eq a, AdditiveMonoid a, Differentiable b) => Weyl a -> (a -> b) -> b -> b -> b
Weyl algebras
The (first) Weyl algebra over a, consisting of differential
operators of the form
\[
p_0(x) + p_1(x) \partial_x + \cdots + p_n(x) \partial_x^n
\]
where each \(p_i(x)\) is a polynomial in \(x\) and each \(\partial_x^i\)
is the differentiation operator with respect to \(x\) repeated \(i\) times.
Instances
| AdditiveFunctor Weyl Source # | |
Defined in Data.YAP.WeylAlgebra Methods mapAdditive :: (AdditiveMonoid a, AdditiveMonoid b) => (a -> b) -> Weyl a -> Weyl b # | |
| (Eq a, Show a, AdditiveMonoid a) => Show (Weyl a) Source # | |
| (Eq a, AdditiveMonoid a) => Eq (Weyl a) Source # | |
| (Ord a, AdditiveMonoid a) => Ord (Weyl a) Source # | |
| AbelianGroup a => AbelianGroup (Weyl a) Source # | Pointwise negation |
| AdditiveMonoid a => AdditiveMonoid (Weyl a) Source # | Pointwise addition |
| FromRational a => FromRational (Weyl a) Source # | |
Defined in Data.YAP.WeylAlgebra Methods fromRational :: Rational -> Weyl a # | |
| Ring a => Ring (Weyl a) Source # | |
Defined in Data.YAP.WeylAlgebra Methods fromInteger :: Integer -> Weyl a # | |
| Semiring a => Semiring (Weyl a) Source # | Composition of operators |
Construction
fromPolynomial :: Polynomial a -> Weyl a Source #
Operator representing multiplication by a polynomial
diff :: Semiring a => Weyl a Source #
Derivative operator, i.e. \(\partial_x\), satisfying
diff*fromPolynomialp =fromPolynomialp*diff+fromPolynomial(derivativep)
fromCoefficients :: [Polynomial a] -> Weyl a Source #
Construct an operator from a list of coefficients of the iterated differential operators in order of increasing number of iterated derivatives.
Queries
coefficients :: (Eq a, AdditiveMonoid a) => Weyl a -> [Polynomial a] Source #
Coefficients of the iterated differential operators in order of increasing number of iterations, and with no trailing zeros.
evaluate :: Semiring a => Weyl a -> Polynomial a -> Polynomial a Source #
Evaluate an operator on a given polynomial.
evaluateWith :: (Eq a, AdditiveMonoid a, Differentiable b) => Weyl a -> (a -> b) -> b -> b -> b Source #
Evaluate an operator, given embeddings of values and the identity polynomial.