colour-space-0.2.1.0: Instances of the manifold-classes for colour types
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Colour.Manifold

Synopsis

Full colour space

data Colour a #

This type represents the human preception of colour. The a parameter is a numeric type used internally for the representation.

The Monoid instance allows one to add colours, but beware that adding colours can take you out of gamut. Consider using blend whenever possible.

Instances

Instances details
AffineSpace Colour 
Instance details

Defined in Data.Colour.Internal

Methods

affineCombo :: Num a => [(a, Colour a)] -> Colour a -> Colour a #

ColourOps Colour 
Instance details

Defined in Data.Colour.Internal

Methods

over :: Num a => AlphaColour a -> Colour a -> Colour a #

darken :: Num a => a -> Colour a -> Colour a #

Num a => Monoid (Colour a) 
Instance details

Defined in Data.Colour.Internal

Methods

mempty :: Colour a #

mappend :: Colour a -> Colour a -> Colour a #

mconcat :: [Colour a] -> Colour a #

Num a => Semigroup (Colour a) 
Instance details

Defined in Data.Colour.Internal

Methods

(<>) :: Colour a -> Colour a -> Colour a #

sconcat :: NonEmpty (Colour a) -> Colour a #

stimes :: Integral b => b -> Colour a -> Colour a #

Eq a => Eq (Colour a) 
Instance details

Defined in Data.Colour.Internal

Methods

(==) :: Colour a -> Colour a -> Bool #

(/=) :: Colour a -> Colour a -> Bool #

Atlas (Colour ) Source # 
Instance details

Defined in Data.Colour.Manifold

Associated Types

type ChartIndex (Colour ) #

Geodesic (Colour ) Source # 
Instance details

Defined in Data.Colour.Manifold

PseudoAffineWithBoundary (Colour ) Source # 
Instance details

Defined in Data.Colour.Manifold

SemimanifoldWithBoundary (Colour ) Source # 
Instance details

Defined in Data.Colour.Manifold

Associated Types

type Interior (Colour ) #

type Boundary (Colour ) #

type HalfNeedle (Colour ) #

type ChartIndex (Colour ) Source # 
Instance details

Defined in Data.Colour.Manifold

type ChartIndex (Colour ) = ()
type Boundary (Colour ) Source # 
Instance details

Defined in Data.Colour.Manifold

type HalfNeedle (Colour ) Source # 
Instance details

Defined in Data.Colour.Manifold

type Interior (Colour ) Source # 
Instance details

Defined in Data.Colour.Manifold

class QuantisedColour c where Source #

Instances

Instances details
QuantisedColour PixelRGB8 Source # 
Instance details

Defined in Data.Colour.Manifold

QuantisedColour PixelRGBF Source # 
Instance details

Defined in Data.Colour.Manifold

2D/1D projected colour space

data ColourMap x Source #

A two-dimensional, smoothly varying colour palette.

spanColourPlane Source #

Arguments

:: Interior (Colour )

Neutral colour

-> (Colour , Colour )

Extreme “cold” / “hot” colours

-> ColourPlane 

Mapping data to colours

Predefined colour maps

type SimpleColourMap = forall x. HasSimpleColourMaps x => ColourMap x Source #

Orphan instances

Arbitrary ColourBoundary Source # 
Instance details

Arbitrary ColourNeedle Source # 
Instance details

Foldable RGB Source # 
Instance details

Methods

fold :: Monoid m => RGB m -> m #

foldMap :: Monoid m => (a -> m) -> RGB a -> m #

foldMap' :: Monoid m => (a -> m) -> RGB a -> m #

foldr :: (a -> b -> b) -> b -> RGB a -> b #

foldr' :: (a -> b -> b) -> b -> RGB a -> b #

foldl :: (b -> a -> b) -> b -> RGB a -> b #

foldl' :: (b -> a -> b) -> b -> RGB a -> b #

foldr1 :: (a -> a -> a) -> RGB a -> a #

foldl1 :: (a -> a -> a) -> RGB a -> a #

toList :: RGB a -> [a] #

null :: RGB a -> Bool #

length :: RGB a -> Int #

elem :: Eq a => a -> RGB a -> Bool #

maximum :: Ord a => RGB a -> a #

minimum :: Ord a => RGB a -> a #

sum :: Num a => RGB a -> a #

product :: Num a => RGB a -> a #

AdditiveMonoid ColourHalfNeedle Source # 
Instance details

HalfSpace ColourHalfNeedle Source # 
Instance details

LinearSpace ColourNeedle Source # 
Instance details

Associated Types

type DualVector ColourNeedle #

Methods

dualSpaceWitness :: DualSpaceWitness ColourNeedle #

linearId :: ColourNeedle +> ColourNeedle #

idTensor :: ColourNeedle DualVector ColourNeedle #

sampleLinearFunction :: (TensorSpace w, Scalar ColourNeedle ~ Scalar w) => (ColourNeedle -+> w) -+> (ColourNeedle +> w) #

toLinearForm :: DualVector ColourNeedle -+> (ColourNeedle +> Scalar ColourNeedle) #

fromLinearForm :: (ColourNeedle +> Scalar ColourNeedle) -+> DualVector ColourNeedle #

coerceDoubleDual :: VSCCoercion ColourNeedle (DualVector (DualVector ColourNeedle)) #

trace :: (ColourNeedle +> ColourNeedle) -+> Scalar ColourNeedle #

contractTensorMap :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle +> (ColourNeedle w)) -+> w #

contractMapTensor :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle (ColourNeedle +> w)) -+> w #

contractTensorFn :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle -+> (ColourNeedle w)) -+> w #

contractLinearMapAgainst :: (LinearSpace w, Scalar w ~ Scalar ColourNeedle) => Bilinear (ColourNeedle +> w) (w -+> ColourNeedle) (Scalar ColourNeedle) #

applyDualVector :: Bilinear (DualVector ColourNeedle) ColourNeedle (Scalar ColourNeedle) #

applyLinear :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => Bilinear (ColourNeedle +> w) ColourNeedle w #

composeLinear :: (LinearSpace w, TensorSpace x, Scalar w ~ Scalar ColourNeedle, Scalar x ~ Scalar ColourNeedle) => Bilinear (w +> x) (ColourNeedle +> w) (ColourNeedle +> x) #

tensorId :: (LinearSpace w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle w) +> (ColourNeedle w) #

applyTensorFunctional :: (LinearSpace u, Scalar u ~ Scalar ColourNeedle) => Bilinear (DualVector (ColourNeedle u)) (ColourNeedle u) (Scalar ColourNeedle) #

applyTensorLinMap :: (LinearSpace u, TensorSpace w, Scalar u ~ Scalar ColourNeedle, Scalar w ~ Scalar ColourNeedle) => Bilinear ((ColourNeedle u) +> w) (ColourNeedle u) w #

useTupleLinearSpaceComponents :: ColourNeedle ~ (x, y) => ((LinearSpace x, LinearSpace y, Scalar x ~ Scalar y) => φ) -> φ #

TensorSpace ColourNeedle Source # 
Instance details

Associated Types

type TensorProduct ColourNeedle w #

Methods

scalarSpaceWitness :: ScalarSpaceWitness ColourNeedle #

linearManifoldWitness :: LinearManifoldWitness ColourNeedle #

zeroTensor :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => ColourNeedle w #

toFlatTensor :: ColourNeedle -+> (ColourNeedle Scalar ColourNeedle) #

fromFlatTensor :: (ColourNeedle Scalar ColourNeedle) -+> ColourNeedle #

addTensors :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle w) -> (ColourNeedle w) -> ColourNeedle w #

subtractTensors :: (TensorSpace ColourNeedle, TensorSpace w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle w) -> (ColourNeedle w) -> ColourNeedle w #

scaleTensor :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => Bilinear (Scalar ColourNeedle) (ColourNeedle w) (ColourNeedle w) #

negateTensor :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle w) -+> (ColourNeedle w) #

tensorProduct :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => Bilinear ColourNeedle w (ColourNeedle w) #

tensorProducts :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => [(ColourNeedle, w)] -> ColourNeedle w #

transposeTensor :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle w) -+> (w ColourNeedle) #

fmapTensor :: (TensorSpace w, TensorSpace x, Scalar w ~ Scalar ColourNeedle, Scalar x ~ Scalar ColourNeedle) => Bilinear (w -+> x) (ColourNeedle w) (ColourNeedle x) #

fzipTensorWith :: (TensorSpace u, TensorSpace w, TensorSpace x, Scalar u ~ Scalar ColourNeedle, Scalar w ~ Scalar ColourNeedle, Scalar x ~ Scalar ColourNeedle) => Bilinear ((w, x) -+> u) (ColourNeedle w, ColourNeedle x) (ColourNeedle u) #

coerceFmapTensorProduct :: Functor p => p ColourNeedle -> VSCCoercion a b -> VSCCoercion (TensorProduct ColourNeedle a) (TensorProduct ColourNeedle b) #

wellDefinedVector :: ColourNeedle -> Maybe ColourNeedle #

wellDefinedTensor :: (TensorSpace w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle w) -> Maybe (ColourNeedle w) #

FiniteDimensional ColourNeedle Source # 
Instance details

Associated Types

data SubBasis ColourNeedle #

Methods

entireBasis :: SubBasis ColourNeedle #

enumerateSubBasis :: SubBasis ColourNeedle -> [ColourNeedle] #

subbasisDimension :: SubBasis ColourNeedle -> Int #

decomposeLinMap :: (LSpace w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle +> w) -> (SubBasis ColourNeedle, DList w) #

decomposeLinMapWithin :: (LSpace w, Scalar w ~ Scalar ColourNeedle) => SubBasis ColourNeedle -> (ColourNeedle +> w) -> Either (SubBasis ColourNeedle, DList w) (DList w) #

recomposeSB :: SubBasis ColourNeedle -> [Scalar ColourNeedle] -> (ColourNeedle, [Scalar ColourNeedle]) #

recomposeSBTensor :: (FiniteDimensional w, Scalar w ~ Scalar ColourNeedle) => SubBasis ColourNeedle -> SubBasis w -> [Scalar ColourNeedle] -> (ColourNeedle w, [Scalar ColourNeedle]) #

recomposeLinMap :: (LSpace w, Scalar w ~ Scalar ColourNeedle) => SubBasis ColourNeedle -> [w] -> (ColourNeedle +> w, [w]) #

recomposeContraLinMap :: (LinearSpace w, Scalar w ~ Scalar ColourNeedle, Functor f) => (f (Scalar w) -> w) -> f (DualVector ColourNeedle) -> ColourNeedle +> w #

recomposeContraLinMapTensor :: (FiniteDimensional u, LinearSpace w, Scalar u ~ Scalar ColourNeedle, Scalar w ~ Scalar ColourNeedle, Functor f) => (f (Scalar w) -> w) -> f (ColourNeedle +> DualVector u) -> (ColourNeedle u) +> w #

uncanonicallyFromDual :: DualVector ColourNeedle -+> ColourNeedle #

uncanonicallyToDual :: ColourNeedle -+> DualVector ColourNeedle #

tensorEquality :: (TensorSpace w, Eq w, Scalar w ~ Scalar ColourNeedle) => (ColourNeedle w) -> (ColourNeedle w) -> Bool #

dualFinitenessWitness :: DualFinitenessWitness ColourNeedle #

SemiInner ColourNeedle Source # 
Instance details

Atlas ColourNeedle Source # 
Instance details

Associated Types

type ChartIndex ColourNeedle #

Geodesic ColourNeedle Source # 
Instance details

ProjectableBoundary ColourNeedle Source # 
Instance details

PseudoAffineWithBoundary ColourNeedle Source # 
Instance details

SemimanifoldWithBoundary ColourBoundary Source # 
Instance details

SemimanifoldWithBoundary ColourNeedle Source # 
Instance details

PseudoAffine ColourNeedle Source # 
Instance details

Semimanifold ColourNeedle Source # 
Instance details

Associated Types

type Needle ColourNeedle #

AdditiveGroup ColourNeedle Source # 
Instance details

AffineSpace ColourNeedle Source # 
Instance details

Associated Types

type Diff ColourNeedle #

VectorSpace ColourNeedle Source # 
Instance details

Associated Types

type Scalar ColourNeedle #

Atlas (Colour ) Source # 
Instance details

Associated Types

type ChartIndex (Colour ) #

Geodesic (Colour ) Source # 
Instance details

PseudoAffineWithBoundary (Colour ) Source # 
Instance details

SemimanifoldWithBoundary (Colour ) Source # 
Instance details

Associated Types

type Interior (Colour ) #

type Boundary (Colour ) #

type HalfNeedle (Colour ) #