Commits

Aleksey Khudyakov committed ff86151

Add extra contructor for linear transformation

Comments (0)

Files changed (1)

Statistics/Distribution/Transform.hs

 -- Portability : portable
 --
 -- Transformations over distributions
-
 module Statistics.Distribution.Transform (
     LinearTransform (..)
+  , linTransFixedPoint
+  , scaleAround
   ) where
 
 import Data.Typeable         (Typeable)
     -- | Distribution being transformed.
   } deriving (Eq,Show,Read,Typeable)
 
+-- | Apply linear transformation to distribution.
+scaleAround :: Double           -- ^ Fixed point
+            -> Double           -- ^ Scale parameter
+            -> d                -- ^ Distribution
+            -> LinearTransform d
+scaleAround x0 sc = LinearTransform (x0 * (1 - sc)) sc
+
+-- | Get fixed point of linear transformation
+linTransFixedPoint :: LinearTransform d -> Double
+linTransFixedPoint (LinearTransform loc sc _) = loc / (1 - sc)
 
 instance Functor LinearTransform where
   fmap f (LinearTransform loc sc dist) = LinearTransform loc sc (f dist)