packages feed

feldspar-language-0.5.0.1: Examples/Simple/Pairs.hs

module Examples.Simple.Pairs where

import Prelude ()
import Feldspar
import Feldspar.Vector
import Feldspar.Compiler

-- | Haskell pairs are compiled to separate variables.
pairs1 :: Data Int32 -> Data Float -> (Data Int32, Data Float)
pairs1 x y = (x,y)

-- | Selector functions: getFst, getSnd.
pairs3 :: (Data Int32, Data Float) -> (Data Int32, Data Float)
pairs3 p = (fst p, snd p)

-- | Zipping two vectors into a vector of pairs.
pairs4 :: Data [Float] -> Data [Int32] -> Data [(Float,Int32)]
pairs4 xs ys = desugar $ zipWith (\a b -> desugar (a,b)) (thawVector' 256 xs) (thawVector' 256 ys)