cifl-math-library-1.1.1.0: Math libraries
Safe HaskellSafe
LanguageHaskell2010

Math.Tools.Median

Synopsis

Documentation

class Ord m => MedianAlgebra m where Source #

Rules expected of MedianAlgebra.

From "Knuth: The Art of Computer Programming" section 7.1.1 http://www-cs-faculty.stanford.edu/~uno/taocp.html

"median/majority"

med x x y == x

"median/commutative"

med x y z == med x z y
med x y z == med y z x
med x y z == med z x y
med x y z == med z y x

"median/associative"

med x w (med y w z) == med (med x w y) w z

"median/distributive"

med (med x y z) u v == med x (med y u v) (med z u v)

Methods

med :: m -> m -> m -> m Source #

Instances

Instances details
MedianAlgebra Ordering Source # 
Instance details

Defined in Math.Tools.Median

MedianAlgebra Integer Source # 
Instance details

Defined in Math.Tools.Median

MedianAlgebra Bool Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: Bool -> Bool -> Bool -> Bool Source #

MedianAlgebra Char Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: Char -> Char -> Char -> Char Source #

MedianAlgebra Double Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: Double -> Double -> Double -> Double Source #

MedianAlgebra Float Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: Float -> Float -> Float -> Float Source #

MedianAlgebra Int Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: Int -> Int -> Int -> Int Source #

Integral a => MedianAlgebra (Ratio a) Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: Ratio a -> Ratio a -> Ratio a -> Ratio a Source #

MedianAlgebra a => MedianAlgebra (Vector1 a) Source # 
Instance details

Defined in Math.Matrix.Vector1

Methods

med :: Vector1 a -> Vector1 a -> Vector1 a -> Vector1 a Source #

MedianAlgebra s => MedianAlgebra (Vector2 s) Source # 
Instance details

Defined in Math.Matrix.Vector2

Methods

med :: Vector2 s -> Vector2 s -> Vector2 s -> Vector2 s Source #

MedianAlgebra s => MedianAlgebra (Vector3 s) Source # 
Instance details

Defined in Math.Matrix.Vector3

Methods

med :: Vector3 s -> Vector3 s -> Vector3 s -> Vector3 s Source #

MedianAlgebra s => MedianAlgebra (Vector4 s) Source # 
Instance details

Defined in Math.Matrix.Vector4

Methods

med :: Vector4 s -> Vector4 s -> Vector4 s -> Vector4 s Source #

MedianAlgebra a => MedianAlgebra [a] Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: [a] -> [a] -> [a] -> [a] Source #

(MedianAlgebra a, MedianAlgebra b) => MedianAlgebra (a, b) Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: (a, b) -> (a, b) -> (a, b) -> (a, b) Source #

(MedianAlgebra a, MedianAlgebra b, MedianAlgebra c) => MedianAlgebra (a, b, c) Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: (a, b, c) -> (a, b, c) -> (a, b, c) -> (a, b, c) Source #

(MedianAlgebra a, MedianAlgebra b, MedianAlgebra c, MedianAlgebra d) => MedianAlgebra (a, b, c, d) Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) Source #

(MedianAlgebra a, MedianAlgebra b, MedianAlgebra c, MedianAlgebra d, MedianAlgebra e) => MedianAlgebra (a, b, c, d, e) Source # 
Instance details

Defined in Math.Tools.Median

Methods

med :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) Source #

median5 :: MedianAlgebra a => a -> a -> a -> a -> a -> a Source #

median :: Ord a => a -> a -> a -> a Source #

data Interval a Source #

Constructors

Interval 

Instances

Instances details
MonadFail Interval Source # 
Instance details

Defined in Math.Tools.Median

Methods

fail :: String -> Interval a #

Applicative Interval Source # 
Instance details

Defined in Math.Tools.Median

Methods

pure :: a -> Interval a #

(<*>) :: Interval (a -> b) -> Interval a -> Interval b #

liftA2 :: (a -> b -> c) -> Interval a -> Interval b -> Interval c #

(*>) :: Interval a -> Interval b -> Interval b #

(<*) :: Interval a -> Interval b -> Interval a #

Functor Interval Source # 
Instance details

Defined in Math.Tools.Median

Methods

fmap :: (a -> b) -> Interval a -> Interval b #

(<$) :: a -> Interval b -> Interval a #

Monad Interval Source # 
Instance details

Defined in Math.Tools.Median

Methods

(>>=) :: Interval a -> (a -> Interval b) -> Interval b #

(>>) :: Interval a -> Interval b -> Interval b #

return :: a -> Interval a #

(Num a, Ord a) => Num (Interval a) Source # 
Instance details

Defined in Math.Tools.Median

Show a => Show (Interval a) Source # 
Instance details

Defined in Math.Tools.Median

Methods

showsPrec :: Int -> Interval a -> ShowS #

show :: Interval a -> String #

showList :: [Interval a] -> ShowS #

Num a => InnerProductSpace (Interval a) Source # 
Instance details

Defined in Math.Tools.Median

Methods

(%.) :: Interval a -> Interval a -> Scalar (Interval a) Source #

Num a => NormedSpace (Interval a) Source # 
Instance details

Defined in Math.Tools.Median

Num a => VectorSpace (Interval a) Source # 
Instance details

Defined in Math.Tools.Median

Associated Types

type Scalar (Interval a) Source #

type Scalar (Interval a) Source # 
Instance details

Defined in Math.Tools.Median

type Scalar (Interval a) = a

interval :: (Monad m, MedianAlgebra a) => Interval a -> m a -> m a Source #

andor :: Ord a => (a, a) -> (a, a) Source #

andor is same as (x,y) -> (x && y, x || y), thus the name, except that the type b is more general. Thus if both and and or are combined, sorting of the pair occurs.

andor' :: Ord a => (a, a) -> (a, a) Source #

andor3 :: Ord a => (a, a, a) -> (a, a, a) Source #