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)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.