| NumericPrelude-0.0: An experimental alternative hierarchy of numeric type classes | Contents | Index |
|
|
|
|
|
Description |
Two-variate power series.
|
|
Synopsis |
|
|
|
Documentation |
|
newtype T a |
In order to handle both variables equivalently
we maintain a list of coefficients for terms of the same total degree.
That is
eval [[a], [b,c], [d,e,f]] (x,y) ==
a + b*x+c*y + d*x^2+e*x*y+f*y^2
Although the sub-lists are always finite and thus are more like polynomials than power series,
division and square root computation are easier to implement for power series.
| Constructors | | Instances | |
|
|
type Core a = [[a]] |
|
isValid :: [[a]] -> Bool |
|
check :: [[a]] -> [[a]] |
|
fromCoeffs :: [[a]] -> T a |
|
fromPowerSeries0 :: C a => T a -> T a |
|
fromPowerSeries1 :: C a => T a -> T a |
|
lift0 :: Core a -> T a |
|
lift1 :: (Core a -> Core a) -> T a -> T a |
|
lift2 :: (Core a -> Core a -> Core a) -> T a -> T a -> T a |
|
lift0fromPowerSeries :: [T a] -> Core a |
|
lift1fromPowerSeries :: ([T a] -> [T a]) -> Core a -> Core a |
|
lift2fromPowerSeries :: ([T a] -> [T a] -> [T a]) -> Core a -> Core a -> Core a |
|
const :: a -> T a |
|
appPrec :: Int |
|
Series arithmetic
|
|
add :: C a => Core a -> Core a -> Core a |
|
sub :: C a => Core a -> Core a -> Core a |
|
negate :: C a => Core a -> Core a |
|
scale :: C a => a -> Core a -> Core a |
|
mul :: C a => Core a -> Core a -> Core a |
|
divide :: C a => Core a -> Core a -> Core a |
|
sqrt :: C a => (a -> a) -> Core a -> Core a |
|
swapVariables :: Core a -> Core a |
|
differentiate0 :: C a => Core a -> Core a |
|
differentiate1 :: C a => Core a -> Core a |
|
integrate0 :: C a => [a] -> Core a -> Core a |
|
integrate1 :: C a => [a] -> Core a -> Core a |
|
comp :: C a => [a] -> Core a -> Core a |
Since the inner series must start with a zero,
the first term is omitted in y.
|
|
Produced by Haddock version 0.7 |