#include "fusion-phases.h"
module Data.Array.Parallel.Unlifted.Sequential.Flat.Enum (
enumFromToU, enumFromThenToU, enumFromStepLenU, enumFromToEachU, enumFromStepLenEachU
) where
import Data.Array.Parallel.Base (
(:*:))
import Data.Array.Parallel.Stream (
enumFromToS, enumFromThenToS, enumFromStepLenS, enumFromToEachS, enumFromStepLenEachS)
import Data.Array.Parallel.Unlifted.Sequential.Flat.UArr (
UA, UArr)
import Data.Array.Parallel.Unlifted.Sequential.Flat.Stream (
unstreamU, streamU)
import Data.Array.Parallel.Unlifted.Sequential.Flat.Sums (
sumU)
enumFromToU :: Int -> Int -> UArr Int
enumFromToU start end = unstreamU (enumFromToS start end)
enumFromThenToU :: Int -> Int -> Int -> UArr Int
enumFromThenToU start next end = unstreamU (enumFromThenToS start next end)
enumFromStepLenU :: Int -> Int -> Int -> UArr Int
enumFromStepLenU s d n = unstreamU (enumFromStepLenS s d n)
enumFromToEachU :: Int -> UArr (Int :*: Int) -> UArr Int
enumFromToEachU n = unstreamU . enumFromToEachS n . streamU
enumFromStepLenEachU :: Int -> UArr (Int :*: Int :*: Int) -> UArr Int
enumFromStepLenEachU len = unstreamU . enumFromStepLenEachS len . streamU