synthesizer-llvm-1.1.0.1: Efficient signal processing using runtime compilation

Safe HaskellNone
LanguageHaskell98

Synthesizer.LLVM.Frame.SerialVector.Class

Description

A special vector type that represents a time-sequence of samples. This way we can distinguish safely between LLVM vectors used for parallel signals and pipelines and those used for chunky processing of scalar signals. For the chunky processing this data type allows us to derive the factor from the type that time constants have to be multiplied with.

Synopsis

Documentation

newtype Constant n a Source #

Constructors

Constant a 
Instances
Functor (Constant n) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Methods

fmap :: (a -> b) -> Constant n a -> Constant n b #

(<$) :: a -> Constant n b -> Constant n a #

Applicative (Constant n) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Methods

pure :: a -> Constant n a #

(<*>) :: Constant n (a -> b) -> Constant n a -> Constant n b #

liftA2 :: (a -> b -> c) -> Constant n a -> Constant n b -> Constant n c #

(*>) :: Constant n a -> Constant n b -> Constant n b #

(<*) :: Constant n a -> Constant n b -> Constant n a #

Phi a => Phi (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Methods

phi :: BasicBlock -> Constant n a -> CodeGenFunction r (Constant n a)

addPhi :: BasicBlock -> Constant n a -> Constant n a -> CodeGenFunction r ()

Undefined a => Undefined (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Methods

undef :: Constant n a

(Positive n, Phi a, Undefined a) => Read (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Element (Constant n a) :: Type Source #

type ReadIt (Constant n a) :: Type Source #

Methods

extract :: Value Word32 -> Constant n a -> CodeGenFunction r (Element (Constant n a)) Source #

dissect :: Constant n a -> CodeGenFunction r [Element (Constant n a)] Source #

readStart :: Constant n a -> CodeGenFunction r (ReadIterator (ReadIt (Constant n a)) (Constant n a)) Source #

readNext :: ReadIterator (ReadIt (Constant n a)) (Constant n a) -> CodeGenFunction r (Element (Constant n a), ReadIterator (ReadIt (Constant n a)) (Constant n a)) Source #

Positive n => Sized (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Size (Constant n a) :: Type Source #

MakeArguments (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Functional

Methods

makeArgs :: Functor f => f (Constant n a) -> Arguments f (Constant n a) Source #

type Arguments f (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Functional

type Arguments f (Constant n a) = f (Constant n a)
type Element (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Element (Constant n a) = a
type ReadIt (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type ReadIt (Constant n a) = a
type Size (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Size (Constant n a) = n

constant :: Positive n => a -> Constant n a Source #

class (Sized v, Phi (ReadIt v), Undefined (ReadIt v), Phi v, Undefined v) => Read v Source #

Minimal complete definition

extract, readStart, readNext

Instances
Read v => Read (T v) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Element (T v) :: Type Source #

type ReadIt (T v) :: Type Source #

Methods

extract :: Value Word32 -> T v -> CodeGenFunction r (Element (T v)) Source #

dissect :: T v -> CodeGenFunction r [Element (T v)] Source #

readStart :: T v -> CodeGenFunction r (ReadIterator (ReadIt (T v)) (T v)) Source #

readNext :: ReadIterator (ReadIt (T v)) (T v) -> CodeGenFunction r (Element (T v), ReadIterator (ReadIt (T v)) (T v)) Source #

Read v => Read (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Element (Result v) :: Type Source #

type ReadIt (Result v) :: Type Source #

Methods

extract :: Value Word32 -> Result v -> CodeGenFunction r (Element (Result v)) Source #

dissect :: Result v -> CodeGenFunction r [Element (Result v)] Source #

readStart :: Result v -> CodeGenFunction r (ReadIterator (ReadIt (Result v)) (Result v)) Source #

readNext :: ReadIterator (ReadIt (Result v)) (Result v) -> CodeGenFunction r (Element (Result v), ReadIterator (ReadIt (Result v)) (Result v)) Source #

Read v => Read (Nodes13 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Element (Nodes13 v) :: Type Source #

type ReadIt (Nodes13 v) :: Type Source #

Methods

extract :: Value Word32 -> Nodes13 v -> CodeGenFunction r (Element (Nodes13 v)) Source #

dissect :: Nodes13 v -> CodeGenFunction r [Element (Nodes13 v)] Source #

readStart :: Nodes13 v -> CodeGenFunction r (ReadIterator (ReadIt (Nodes13 v)) (Nodes13 v)) Source #

readNext :: ReadIterator (ReadIt (Nodes13 v)) (Nodes13 v) -> CodeGenFunction r (Element (Nodes13 v), ReadIterator (ReadIt (Nodes13 v)) (Nodes13 v)) Source #

Read v => Read (Nodes02 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Element (Nodes02 v) :: Type Source #

type ReadIt (Nodes02 v) :: Type Source #

Methods

extract :: Value Word32 -> Nodes02 v -> CodeGenFunction r (Element (Nodes02 v)) Source #

dissect :: Nodes02 v -> CodeGenFunction r [Element (Nodes02 v)] Source #

readStart :: Nodes02 v -> CodeGenFunction r (ReadIterator (ReadIt (Nodes02 v)) (Nodes02 v)) Source #

readNext :: ReadIterator (ReadIt (Nodes02 v)) (Nodes02 v) -> CodeGenFunction r (Element (Nodes02 v), ReadIterator (ReadIt (Nodes02 v)) (Nodes02 v)) Source #

(Read va, Read vb, Size va ~ Size vb) => Read (va, vb) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Element (va, vb) :: Type Source #

type ReadIt (va, vb) :: Type Source #

Methods

extract :: Value Word32 -> (va, vb) -> CodeGenFunction r (Element (va, vb)) Source #

dissect :: (va, vb) -> CodeGenFunction r [Element (va, vb)] Source #

readStart :: (va, vb) -> CodeGenFunction r (ReadIterator (ReadIt (va, vb)) (va, vb)) Source #

readNext :: ReadIterator (ReadIt (va, vb)) (va, vb) -> CodeGenFunction r (Element (va, vb), ReadIterator (ReadIt (va, vb)) (va, vb)) Source #

(Positive n, C a) => Read (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Element (T n a) :: Type Source #

type ReadIt (T n a) :: Type Source #

Methods

extract :: Value Word32 -> T n a -> CodeGenFunction r (Element (T n a)) Source #

dissect :: T n a -> CodeGenFunction r [Element (T n a)] Source #

readStart :: T n a -> CodeGenFunction r (ReadIterator (ReadIt (T n a)) (T n a)) Source #

readNext :: ReadIterator (ReadIt (T n a)) (T n a) -> CodeGenFunction r (Element (T n a), ReadIterator (ReadIt (T n a)) (T n a)) Source #

(Positive n, Phi a, Undefined a) => Read (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Element (Constant n a) :: Type Source #

type ReadIt (Constant n a) :: Type Source #

Methods

extract :: Value Word32 -> Constant n a -> CodeGenFunction r (Element (Constant n a)) Source #

dissect :: Constant n a -> CodeGenFunction r [Element (Constant n a)] Source #

readStart :: Constant n a -> CodeGenFunction r (ReadIterator (ReadIt (Constant n a)) (Constant n a)) Source #

readNext :: ReadIterator (ReadIt (Constant n a)) (Constant n a) -> CodeGenFunction r (Element (Constant n a), ReadIterator (ReadIt (Constant n a)) (Constant n a)) Source #

(Read va, Read vb, Read vc, Size va ~ Size vb, Size vb ~ Size vc) => Read (va, vb, vc) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Element (va, vb, vc) :: Type Source #

type ReadIt (va, vb, vc) :: Type Source #

Methods

extract :: Value Word32 -> (va, vb, vc) -> CodeGenFunction r (Element (va, vb, vc)) Source #

dissect :: (va, vb, vc) -> CodeGenFunction r [Element (va, vb, vc)] Source #

readStart :: (va, vb, vc) -> CodeGenFunction r (ReadIterator (ReadIt (va, vb, vc)) (va, vb, vc)) Source #

readNext :: ReadIterator (ReadIt (va, vb, vc)) (va, vb, vc) -> CodeGenFunction r (Element (va, vb, vc), ReadIterator (ReadIt (va, vb, vc)) (va, vb, vc)) Source #

type family Element v Source #

Instances
type Element (T v) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Element (T v) = T (Element v)
type Element (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Element (Result v) = Result (Element v)
type Element (Nodes13 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Element (Nodes02 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Element (va, vb) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Element (va, vb) = (Element va, Element vb)
type Element (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Element (T n a) = T a
type Element (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Element (Constant n a) = a
type Element (va, vb, vc) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Element (va, vb, vc) = (Element va, Element vb, Element vc)

type family ReadIt v Source #

Instances
type ReadIt (T v) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type ReadIt (T v) = T (ReadIt v)
type ReadIt (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type ReadIt (Result v) = Result (ReadIt v)
type ReadIt (Nodes13 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type ReadIt (Nodes13 v) = Nodes13 (ReadIt v)
type ReadIt (Nodes02 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type ReadIt (Nodes02 v) = Nodes02 (ReadIt v)
type ReadIt (va, vb) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type ReadIt (va, vb) = (ReadIt va, ReadIt vb)
type ReadIt (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type ReadIt (T n a) = T n a
type ReadIt (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type ReadIt (Constant n a) = a
type ReadIt (va, vb, vc) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type ReadIt (va, vb, vc) = (ReadIt va, ReadIt vb, ReadIt vc)

extract :: Read v => Value Word32 -> v -> CodeGenFunction r (Element v) Source #

readStart :: Read v => v -> CodeGenFunction r (ReadIterator (ReadIt v) v) Source #

readNext :: Read v => ReadIterator (ReadIt v) v -> CodeGenFunction r (Element v, ReadIterator (ReadIt v) v) Source #

class (Read v, Phi (WriteIt v), Undefined (WriteIt v)) => Write v Source #

Minimal complete definition

insert, writeStart, writeNext, writeStop

Instances
Write v => Write (T v) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type WriteIt (T v) :: Type Source #

Methods

insert :: Value Word32 -> Element (T v) -> T v -> CodeGenFunction r (T v) Source #

assemble :: [Element (T v)] -> CodeGenFunction r (T v) Source #

writeStart :: CodeGenFunction r (WriteIterator (WriteIt (T v)) (T v)) Source #

writeNext :: Element (T v) -> WriteIterator (WriteIt (T v)) (T v) -> CodeGenFunction r (WriteIterator (WriteIt (T v)) (T v)) Source #

writeStop :: WriteIterator (WriteIt (T v)) (T v) -> CodeGenFunction r (T v) Source #

Write v => Write (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type WriteIt (Result v) :: Type Source #

Methods

insert :: Value Word32 -> Element (Result v) -> Result v -> CodeGenFunction r (Result v) Source #

assemble :: [Element (Result v)] -> CodeGenFunction r (Result v) Source #

writeStart :: CodeGenFunction r (WriteIterator (WriteIt (Result v)) (Result v)) Source #

writeNext :: Element (Result v) -> WriteIterator (WriteIt (Result v)) (Result v) -> CodeGenFunction r (WriteIterator (WriteIt (Result v)) (Result v)) Source #

writeStop :: WriteIterator (WriteIt (Result v)) (Result v) -> CodeGenFunction r (Result v) Source #

Write v => Write (Nodes13 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type WriteIt (Nodes13 v) :: Type Source #

Methods

insert :: Value Word32 -> Element (Nodes13 v) -> Nodes13 v -> CodeGenFunction r (Nodes13 v) Source #

assemble :: [Element (Nodes13 v)] -> CodeGenFunction r (Nodes13 v) Source #

writeStart :: CodeGenFunction r (WriteIterator (WriteIt (Nodes13 v)) (Nodes13 v)) Source #

writeNext :: Element (Nodes13 v) -> WriteIterator (WriteIt (Nodes13 v)) (Nodes13 v) -> CodeGenFunction r (WriteIterator (WriteIt (Nodes13 v)) (Nodes13 v)) Source #

writeStop :: WriteIterator (WriteIt (Nodes13 v)) (Nodes13 v) -> CodeGenFunction r (Nodes13 v) Source #

Write v => Write (Nodes02 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type WriteIt (Nodes02 v) :: Type Source #

Methods

insert :: Value Word32 -> Element (Nodes02 v) -> Nodes02 v -> CodeGenFunction r (Nodes02 v) Source #

assemble :: [Element (Nodes02 v)] -> CodeGenFunction r (Nodes02 v) Source #

writeStart :: CodeGenFunction r (WriteIterator (WriteIt (Nodes02 v)) (Nodes02 v)) Source #

writeNext :: Element (Nodes02 v) -> WriteIterator (WriteIt (Nodes02 v)) (Nodes02 v) -> CodeGenFunction r (WriteIterator (WriteIt (Nodes02 v)) (Nodes02 v)) Source #

writeStop :: WriteIterator (WriteIt (Nodes02 v)) (Nodes02 v) -> CodeGenFunction r (Nodes02 v) Source #

(Write va, Write vb, Size va ~ Size vb) => Write (va, vb) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type WriteIt (va, vb) :: Type Source #

Methods

insert :: Value Word32 -> Element (va, vb) -> (va, vb) -> CodeGenFunction r (va, vb) Source #

assemble :: [Element (va, vb)] -> CodeGenFunction r (va, vb) Source #

writeStart :: CodeGenFunction r (WriteIterator (WriteIt (va, vb)) (va, vb)) Source #

writeNext :: Element (va, vb) -> WriteIterator (WriteIt (va, vb)) (va, vb) -> CodeGenFunction r (WriteIterator (WriteIt (va, vb)) (va, vb)) Source #

writeStop :: WriteIterator (WriteIt (va, vb)) (va, vb) -> CodeGenFunction r (va, vb) Source #

(Positive n, C a) => Write (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type WriteIt (T n a) :: Type Source #

Methods

insert :: Value Word32 -> Element (T n a) -> T n a -> CodeGenFunction r (T n a) Source #

assemble :: [Element (T n a)] -> CodeGenFunction r (T n a) Source #

writeStart :: CodeGenFunction r (WriteIterator (WriteIt (T n a)) (T n a)) Source #

writeNext :: Element (T n a) -> WriteIterator (WriteIt (T n a)) (T n a) -> CodeGenFunction r (WriteIterator (WriteIt (T n a)) (T n a)) Source #

writeStop :: WriteIterator (WriteIt (T n a)) (T n a) -> CodeGenFunction r (T n a) Source #

(Write va, Write vb, Write vc, Size va ~ Size vb, Size vb ~ Size vc) => Write (va, vb, vc) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type WriteIt (va, vb, vc) :: Type Source #

Methods

insert :: Value Word32 -> Element (va, vb, vc) -> (va, vb, vc) -> CodeGenFunction r (va, vb, vc) Source #

assemble :: [Element (va, vb, vc)] -> CodeGenFunction r (va, vb, vc) Source #

writeStart :: CodeGenFunction r (WriteIterator (WriteIt (va, vb, vc)) (va, vb, vc)) Source #

writeNext :: Element (va, vb, vc) -> WriteIterator (WriteIt (va, vb, vc)) (va, vb, vc) -> CodeGenFunction r (WriteIterator (WriteIt (va, vb, vc)) (va, vb, vc)) Source #

writeStop :: WriteIterator (WriteIt (va, vb, vc)) (va, vb, vc) -> CodeGenFunction r (va, vb, vc) Source #

type family WriteIt v Source #

Instances
type WriteIt (T v) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type WriteIt (T v) = T (WriteIt v)
type WriteIt (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type WriteIt (Result v) = Result (WriteIt v)
type WriteIt (Nodes13 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type WriteIt (Nodes02 v) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type WriteIt (va, vb) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type WriteIt (va, vb) = (WriteIt va, WriteIt vb)
type WriteIt (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type WriteIt (T n a) = T n a
type WriteIt (va, vb, vc) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type WriteIt (va, vb, vc) = (WriteIt va, WriteIt vb, WriteIt vc)

insert :: Write v => Value Word32 -> Element v -> v -> CodeGenFunction r v Source #

writeStart :: Write v => CodeGenFunction r (WriteIterator (WriteIt v) v) Source #

writeNext :: Write v => Element v -> WriteIterator (WriteIt v) v -> CodeGenFunction r (WriteIterator (WriteIt v) v) Source #

writeStop :: Write v => WriteIterator (WriteIt v) v -> CodeGenFunction r v Source #

class (Write v, Phi (WriteIt v), Zero (WriteIt v)) => Zero v Source #

Minimal complete definition

writeZero

Instances
Zero v => Zero (T v) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Methods

writeZero :: CodeGenFunction r (WriteIterator (WriteIt (T v)) (T v)) Source #

(Zero va, Zero vb, Size va ~ Size vb) => Zero (va, vb) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Methods

writeZero :: CodeGenFunction r (WriteIterator (WriteIt (va, vb)) (va, vb)) Source #

(Positive n, C a) => Zero (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Methods

writeZero :: CodeGenFunction r (WriteIterator (WriteIt (T n a)) (T n a)) Source #

(Zero va, Zero vb, Zero vc, Size va ~ Size vb, Size vb ~ Size vc) => Zero (va, vb, vc) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Methods

writeZero :: CodeGenFunction r (WriteIterator (WriteIt (va, vb, vc)) (va, vb, vc)) Source #

writeZero :: Zero v => CodeGenFunction r (WriteIterator (WriteIt v) v) Source #

newtype Iterator mode it v Source #

Constructors

Iterator it 
Instances
C it => C (Iterator mode it v) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Struct (Iterator mode it v) :: Type

Methods

load :: Value (Ptr (Struct (Iterator mode it v))) -> CodeGenFunction r (Iterator mode it v)

store :: Iterator mode it v -> Value (Ptr (Struct (Iterator mode it v))) -> CodeGenFunction r ()

decompose :: Value (Struct (Iterator mode it v)) -> CodeGenFunction r (Iterator mode it v)

compose :: Iterator mode it v -> CodeGenFunction r (Value (Struct (Iterator mode it v)))

Phi it => Phi (Iterator mode it v) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Methods

phi :: BasicBlock -> Iterator mode it v -> CodeGenFunction r (Iterator mode it v)

addPhi :: BasicBlock -> Iterator mode it v -> Iterator mode it v -> CodeGenFunction r ()

Undefined it => Undefined (Iterator mode it v) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Methods

undef :: Iterator mode it v

type Struct (Iterator mode it v) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Struct (Iterator mode it v) = Struct it

class Positive (Size v) => Sized v Source #

The type parameter v shall be a MultiVector or MultiValue Serial or a wrapper around one or more such things sharing the same size.

Instances
Sized value => Sized (T value) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Size (T value) :: Type Source #

Sized v => Sized (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

Associated Types

type Size (Result v) :: Type Source #

Sized value => Sized (Nodes13 value) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Size (Nodes13 value) :: Type Source #

Sized value => Sized (Nodes02 value) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

Associated Types

type Size (Nodes02 value) :: Type Source #

(Sized va, Sized vb, Size va ~ Size vb) => Sized (va, vb) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Size (va, vb) :: Type Source #

Positive n => Sized (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Size (T n a) :: Type Source #

Positive n => Sized (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Size (Constant n a) :: Type Source #

(Sized va, Sized vb, Sized vc, Size va ~ Size vb, Size vb ~ Size vc) => Sized (va, vb, vc) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

Associated Types

type Size (va, vb, vc) :: Type Source #

type family Size v Source #

Instances
type Size (T value) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Size (T value) = Size value
type Size (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Filter.Universal

type Size (Result v) = Size v
type Size (Nodes13 value) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Size (Nodes13 value) = Size value
type Size (Nodes02 value) Source # 
Instance details

Defined in Synthesizer.LLVM.Interpolation

type Size (Nodes02 value) = Size value
type Size (va, vb) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Size (va, vb) = Size va
type Size (T n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Size (T n a) = n
type Size (Constant n a) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Size (Constant n a) = n
type Size (va, vb, vc) Source # 
Instance details

Defined in Synthesizer.LLVM.Frame.SerialVector.Class

type Size (va, vb, vc) = Size va

size :: (Sized v, Integral i) => v -> i Source #

sizeOfIterator :: (Sized v, Integral i) => Iterator mode it v -> i Source #

withSize :: Sized v => (Int -> m v) -> m v Source #

insertTraversable :: (Write v, Traversable f, Applicative f) => Value Word32 -> f (Element v) -> f v -> CodeGenFunction r (f v) Source #

extractTraversable :: (Read v, Traversable f) => Value Word32 -> f v -> CodeGenFunction r (f (Element v)) Source #

readStartTraversable :: (Traversable f, Applicative f, Read v) => f v -> CodeGenFunction r (ReadIterator (f (ReadIt v)) (f v)) Source #

readNextTraversable :: (Traversable f, Applicative f, Read v) => ReadIterator (f (ReadIt v)) (f v) -> CodeGenFunction r (f (Element v), ReadIterator (f (ReadIt v)) (f v)) Source #

writeStartTraversable :: (Traversable f, Applicative f, Write v) => CodeGenFunction r (WriteIterator (f (WriteIt v)) (f v)) Source #

writeNextTraversable :: (Traversable f, Applicative f, Write v) => f (Element v) -> WriteIterator (f (WriteIt v)) (f v) -> CodeGenFunction r (WriteIterator (f (WriteIt v)) (f v)) Source #

writeStopTraversable :: (Traversable f, Applicative f, Write v) => WriteIterator (f (WriteIt v)) (f v) -> CodeGenFunction r (f v) Source #

writeZeroTraversable :: (Traversable f, Applicative f, Zero v) => CodeGenFunction r (WriteIterator (f (WriteIt v)) (f v)) Source #

dissect :: Read v => v -> CodeGenFunction r [Element v] Source #

assemble :: Write v => [Element v] -> CodeGenFunction r v Source #

modify :: (Write v, Element v ~ a) => Value Word32 -> (a -> CodeGenFunction r a) -> v -> CodeGenFunction r v Source #

upsample :: Write v => Element v -> CodeGenFunction r v Source #

subsample :: Read v => v -> CodeGenFunction r (Element v) Source #

last :: Read v => v -> CodeGenFunction r (Element v) Source #

iterate :: Write v => (Element v -> CodeGenFunction r (Element v)) -> Element v -> CodeGenFunction r v Source #

reverse :: Write v => v -> CodeGenFunction r v Source #

shiftUp :: Write v => Element v -> v -> CodeGenFunction r (Element v, v) Source #

shiftUpMultiZero :: (Write v, Additive (Element v)) => Int -> v -> CodeGenFunction r v Source #

shiftDownMultiZero :: (Write v, Additive (Element v)) => Int -> v -> CodeGenFunction r v Source #