futhark-0.25.32: An optimising compiler for a functional, array-oriented language.
Safe HaskellNone
LanguageGHC2021

Futhark.Test.Values

Description

This module provides an efficient value representation as well as parsing and comparison functions.

Synopsis

Documentation

data Value #

Instances

Instances details
Binary Value 
Instance details

Defined in Futhark.Data

Show Value 
Instance details

Defined in Futhark.Data

Eq Value 
Instance details

Defined in Futhark.Data

Methods

(==) :: Value -> Value -> Bool Source #

(/=) :: Value -> Value -> Bool Source #

Pretty Value Source # 
Instance details

Defined in Futhark.Test.Values

Methods

pretty :: Value -> Doc ann #

prettyList :: [Value] -> Doc ann #

PutValue [Value] 
Instance details

Defined in Futhark.Data

Methods

putValue :: [Value] -> Maybe Value #

type Vector = Vector #

class PutValue1 t where #

Methods

putValue1 :: t -> Value #

Instances

Instances details
PutValue1 ByteString 
Instance details

Defined in Futhark.Data

PutValue1 ByteString 
Instance details

Defined in Futhark.Data

PutValue1 Int16 
Instance details

Defined in Futhark.Data

Methods

putValue1 :: Int16 -> Value #

PutValue1 Int32 
Instance details

Defined in Futhark.Data

Methods

putValue1 :: Int32 -> Value #

PutValue1 Int64 
Instance details

Defined in Futhark.Data

Methods

putValue1 :: Int64 -> Value #

PutValue1 Int8 
Instance details

Defined in Futhark.Data

Methods

putValue1 :: Int8 -> Value #

PutValue1 Word16 
Instance details

Defined in Futhark.Data

Methods

putValue1 :: Word16 -> Value #

PutValue1 Word32 
Instance details

Defined in Futhark.Data

Methods

putValue1 :: Word32 -> Value #

PutValue1 Word64 
Instance details

Defined in Futhark.Data

Methods

putValue1 :: Word64 -> Value #

PutValue1 Word8 
Instance details

Defined in Futhark.Data

Methods

putValue1 :: Word8 -> Value #

PutValue1 Text 
Instance details

Defined in Futhark.Data

Methods

putValue1 :: Text -> Value #

class PutValue t where #

Methods

putValue :: t -> Maybe Value #

Instances

Instances details
PutValue ByteString 
Instance details

Defined in Futhark.Data

PutValue ByteString 
Instance details

Defined in Futhark.Data

PutValue Int16 
Instance details

Defined in Futhark.Data

Methods

putValue :: Int16 -> Maybe Value #

PutValue Int32 
Instance details

Defined in Futhark.Data

Methods

putValue :: Int32 -> Maybe Value #

PutValue Int64 
Instance details

Defined in Futhark.Data

Methods

putValue :: Int64 -> Maybe Value #

PutValue Int8 
Instance details

Defined in Futhark.Data

Methods

putValue :: Int8 -> Maybe Value #

PutValue Word16 
Instance details

Defined in Futhark.Data

Methods

putValue :: Word16 -> Maybe Value #

PutValue Word32 
Instance details

Defined in Futhark.Data

Methods

putValue :: Word32 -> Maybe Value #

PutValue Word64 
Instance details

Defined in Futhark.Data

Methods

putValue :: Word64 -> Maybe Value #

PutValue Word8 
Instance details

Defined in Futhark.Data

Methods

putValue :: Word8 -> Maybe Value #

PutValue Text 
Instance details

Defined in Futhark.Data

Methods

putValue :: Text -> Maybe Value #

PutValue [Value] 
Instance details

Defined in Futhark.Data

Methods

putValue :: [Value] -> Maybe Value #

class GetValue t where #

Methods

getValue :: Value -> Maybe t #

Instances

Instances details
GetValue Int16 
Instance details

Defined in Futhark.Data

Methods

getValue :: Value -> Maybe Int16 #

GetValue Int32 
Instance details

Defined in Futhark.Data

Methods

getValue :: Value -> Maybe Int32 #

GetValue Int64 
Instance details

Defined in Futhark.Data

Methods

getValue :: Value -> Maybe Int64 #

GetValue Int8 
Instance details

Defined in Futhark.Data

Methods

getValue :: Value -> Maybe Int8 #

GetValue Word16 
Instance details

Defined in Futhark.Data

Methods

getValue :: Value -> Maybe Word16 #

GetValue Word32 
Instance details

Defined in Futhark.Data

Methods

getValue :: Value -> Maybe Word32 #

GetValue Word64 
Instance details

Defined in Futhark.Data

Methods

getValue :: Value -> Maybe Word64 #

GetValue Word8 
Instance details

Defined in Futhark.Data

Methods

getValue :: Value -> Maybe Word8 #

GetValue Bool 
Instance details

Defined in Futhark.Data

Methods

getValue :: Value -> Maybe Bool #

GetValue t => GetValue [t] 
Instance details

Defined in Futhark.Data

Methods

getValue :: Value -> Maybe [t] #

data ValueType #

Constructors

ValueType [Int] PrimType 

Instances

Instances details
Show ValueType 
Instance details

Defined in Futhark.Data

Eq ValueType 
Instance details

Defined in Futhark.Data

Ord ValueType 
Instance details

Defined in Futhark.Data

Pretty ValueType Source # 
Instance details

Defined in Futhark.Test.Values

Methods

pretty :: ValueType -> Doc ann #

prettyList :: [ValueType] -> Doc ann #

data Mismatch #

Instances

Instances details
Show Mismatch 
Instance details

Defined in Futhark.Data.Compare

data Compound v Source #

The structure of a compound value, parameterised over the actual values. For most cases you probably want CompoundValue.

Constructors

ValueRecord (Map Text (Compound v)) 
ValueTuple [Compound v]

Must not be single value.

ValueAtom v 

Instances

Instances details
Functor Compound Source # 
Instance details

Defined in Futhark.Test.Values

Methods

fmap :: (a -> b) -> Compound a -> Compound b Source #

(<$) :: a -> Compound b -> Compound a Source #

Foldable Compound Source # 
Instance details

Defined in Futhark.Test.Values

Methods

fold :: Monoid m => Compound m -> m Source #

foldMap :: Monoid m => (a -> m) -> Compound a -> m Source #

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

foldr :: (a -> b -> b) -> b -> Compound a -> b Source #

foldr' :: (a -> b -> b) -> b -> Compound a -> b Source #

foldl :: (b -> a -> b) -> b -> Compound a -> b Source #

foldl' :: (b -> a -> b) -> b -> Compound a -> b Source #

foldr1 :: (a -> a -> a) -> Compound a -> a Source #

foldl1 :: (a -> a -> a) -> Compound a -> a Source #

toList :: Compound a -> [a] Source #

null :: Compound a -> Bool Source #

length :: Compound a -> Int Source #

elem :: Eq a => a -> Compound a -> Bool Source #

maximum :: Ord a => Compound a -> a Source #

minimum :: Ord a => Compound a -> a Source #

sum :: Num a => Compound a -> a Source #

product :: Num a => Compound a -> a Source #

Traversable Compound Source # 
Instance details

Defined in Futhark.Test.Values

Methods

traverse :: Applicative f => (a -> f b) -> Compound a -> f (Compound b) Source #

sequenceA :: Applicative f => Compound (f a) -> f (Compound a) Source #

mapM :: Monad m => (a -> m b) -> Compound a -> m (Compound b) Source #

sequence :: Monad m => Compound (m a) -> m (Compound a) Source #

Show v => Show (Compound v) Source # 
Instance details

Defined in Futhark.Test.Values

Eq v => Eq (Compound v) Source # 
Instance details

Defined in Futhark.Test.Values

Methods

(==) :: Compound v -> Compound v -> Bool Source #

(/=) :: Compound v -> Compound v -> Bool Source #

Ord v => Ord (Compound v) Source # 
Instance details

Defined in Futhark.Test.Values

Pretty v => Pretty (Compound v) Source # 
Instance details

Defined in Futhark.Test.Values

Methods

pretty :: Compound v -> Doc ann #

prettyList :: [Compound v] -> Doc ann #

type CompoundValue = Compound Value Source #

Like a Value, but also grouped in compound ways that are not supported by raw values. You cannot parse or read these in standard ways, and they cannot be elements of arrays.

mkCompound :: [Compound v] -> Compound v Source #

Create a tuple for a non-unit list, and otherwise a ValueAtom

unCompound :: Compound v -> [Compound v] Source #

If the value is a tuple, extract the components, otherwise return a singleton list of the value.

Orphan instances

Pretty Value Source # 
Instance details

Methods

pretty :: Value -> Doc ann #

prettyList :: [Value] -> Doc ann #

Pretty ValueType Source # 
Instance details

Methods

pretty :: ValueType -> Doc ann #

prettyList :: [ValueType] -> Doc ann #