Safe Haskell | Safe |
---|---|
Language | Haskell98 |
This module consists of source code to accompany the draft paper: "Declarative Equations, Compositional Strategies: Solving Differential Systems with Lazy Splines" at http://gbaz.github.io/slides/ode-draft-2009.pdf.
See the paper for a description of how the system works, and the source of the Examples module for usage.
Some slides from a more recent description of the core mechanism are at http://gbaz.github.io/slides/integration.html.
Synopsis
- class Sampleable a where
- type Poly = [Double]
- type PolySegment = (Double, Poly)
- type Spline = [PolySegment]
- type SplinePredicate = Double -> Double -> Poly -> Double
- duration :: Spline -> Double
- maxDuration :: Double
- liftS :: Double -> Spline
- deriveSpline :: Spline -> Spline
- integrateSpline :: Spline -> Spline
- inSpline2 :: (Poly -> Poly -> Poly) -> Spline -> Spline -> Spline
- shiftBy :: Double -> Poly -> Poly
- mapSpline :: Bool -> (Double -> Double -> Poly -> Poly) -> Spline -> Spline
- match :: a -> [a] -> [a]
- matchScale :: Double -> Double -> [Double] -> [Double]
- trimmingTo :: Spline -> Int -> Spline
- extrapForward :: Spline -> Double -> Spline
- scaleRest :: Poly -> Double -> Poly
- satisfying :: Spline -> (Double, SplinePredicate) -> Spline
- splitWhen :: Spline -> (Double, Double, SplinePredicate) -> Spline
- extendWhen :: Spline -> (Double, Double, SplinePredicate) -> Spline
- lastDef :: t -> [t] -> t
- trimSmart :: Spline -> SplinePredicate -> Spline
- headDef :: p -> [p] -> p
- (#) :: (Eq a, Num a, Num [a]) => [a] -> [a] -> [a]
- integ :: [Double] -> [Double]
- diff :: Num c => [c] -> [c]
- countFrom :: Num t => t -> [t]
- dropZeros :: [Double] -> [Double]
- newton :: Double -> (Double -> Double) -> [Double]
- pickValue :: Double -> (a -> Double) -> [a] -> a
- findValue :: Double -> (a -> Double) -> (Double -> a) -> a
Documentation
class Sampleable a where Source #
Something that can be sampled.
Instances
Sampleable Spline Source # | |
Sampleable PolySegment Source # | |
Defined in Numeric.LazySplines | |
Sampleable Poly Source # | |
Sampleable [Poly] Source # | |
type PolySegment = (Double, Poly) Source #
type Spline = [PolySegment] Source #
maxDuration :: Double Source #
deriveSpline :: Spline -> Spline Source #
integrateSpline :: Spline -> Spline Source #
satisfying :: Spline -> (Double, SplinePredicate) -> Spline infixl 1 Source #
extendWhen :: Spline -> (Double, Double, SplinePredicate) -> Spline infixl 1 Source #