Copyright | (c) Scott N. Walck 2012-2018 |
---|---|
License | BSD3 (see LICENSE) |
Maintainer | Scott N. Walck <walck@lvc.edu> |
Stability | experimental |
Safe Haskell | Safe |
Language | Haskell98 |
- data Curve = Curve {}
- normalizeCurve :: Curve -> Curve
- concatCurves :: Curve -> Curve -> Curve
- concatenateCurves :: [Curve] -> Curve
- reverseCurve :: Curve -> Curve
- evalCurve :: Curve -> Double -> Position
- shiftCurve :: Displacement -> Curve -> Curve
- straightLine :: Position -> Position -> Curve
- simpleLineIntegral :: (InnerSpace v, Scalar v ~ Double) => Int -> Field v -> Curve -> v
- dottedLineIntegral :: Int -> VectorField -> Curve -> Double
- crossedLineIntegral :: Int -> VectorField -> Curve -> Vec
- compositeTrapezoidDottedLineIntegral :: Int -> VectorField -> Curve -> Double
- compositeTrapezoidCrossedLineIntegral :: Int -> VectorField -> Curve -> Vec
- compositeSimpsonDottedLineIntegral :: Int -> VectorField -> Curve -> Double
- compositeSimpsonCrossedLineIntegral :: Int -> VectorField -> Curve -> Vec
Curves
Curve
is a parametrized function into three-space, an initial limit, and a final limit.
Curve | |
|
normalizeCurve :: Curve -> Curve Source #
Reparametrize a curve from 0 to 1.
Concatenate two curves.
concatenateCurves :: [Curve] -> Curve Source #
Concatenate a list of curves. Parametrizes curves equally.
reverseCurve :: Curve -> Curve Source #
Reverse a curve.
:: Curve | the curve |
-> Double | the parameter |
-> Position | position of the point on the curve at that parameter |
Evaluate the position of a curve at a parameter.
:: Displacement | amount to shift |
-> Curve | original curve |
-> Curve | shifted curve |
Shift a curve by a displacement.
The straight-line curve from one position to another.
Line Integrals
:: (InnerSpace v, Scalar v ~ Double) | |
=> Int | number of intervals |
-> Field v | scalar or vector field |
-> Curve | curve to integrate over |
-> v | scalar or vector result |
Calculates integral f dl over curve, where dl is a scalar line element.
:: Int | number of half-intervals (one less than the number of function evaluations) |
-> VectorField | vector field |
-> Curve | curve to integrate over |
-> Double | scalar result |
A dotted line integral.
Convenience function for compositeSimpsonDottedLineIntegral
.
:: Int | number of half-intervals (one less than the number of function evaluations) |
-> VectorField | vector field |
-> Curve | curve to integrate over |
-> Vec | vector result |
Calculates integral vf x dl over curve.
Convenience function for compositeSimpsonCrossedLineIntegral
.
compositeTrapezoidDottedLineIntegral Source #
:: Int | number of intervals |
-> VectorField | vector field |
-> Curve | curve to integrate over |
-> Double | scalar result |
A dotted line integral, performed in an unsophisticated way.
compositeTrapezoidCrossedLineIntegral Source #
:: Int | number of intervals |
-> VectorField | vector field |
-> Curve | curve to integrate over |
-> Vec | vector result |
Calculates integral vf x dl over curve in an unsophisticated way.
compositeSimpsonDottedLineIntegral Source #
:: Int | number of half-intervals (one less than the number of function evaluations) |
-> VectorField | vector field |
-> Curve | curve to integrate over |
-> Double | scalar result |
Quadratic approximation to vector field. Quadratic approximation to curve. Composite strategy. Dotted line integral.
compositeSimpsonCrossedLineIntegral Source #
:: Int | number of half-intervals (one less than the number of function evaluations) |
-> VectorField | vector field |
-> Curve | curve to integrate over |
-> Vec | vector result |
Quadratic approximation to vector field. Quadratic approximation to curve. Composite strategy. Crossed line integral.