#include "fusion-phases.h"
module Data.Array.Parallel.Unlifted.Distributed.Data.USSegd.Base
( lengthD
, takeLengthsD
, takeIndicesD
, takeElementsD
, takeStartsD
, takeSourcesD
, takeUSegdD)
where
import Data.Array.Parallel.Unlifted.Distributed.Data.USSegd.DT
import Data.Array.Parallel.Unlifted.Distributed.Primitive.DT
import Data.Array.Parallel.Unlifted.Sequential.USSegd (USSegd)
import Data.Array.Parallel.Unlifted.Sequential.USegd (USegd)
import Data.Array.Parallel.Unlifted.Sequential.Vector (Vector)
import Prelude as P
import qualified Data.Array.Parallel.Unlifted.Distributed.Data.USegd as DUSegd
import qualified Data.Array.Parallel.Unlifted.Distributed.Data.Vector as DV
lengthD :: Dist USSegd -> Dist Int
lengthD (DUSSegd starts _ _)
= DV.lengthD starts
takeLengthsD :: Dist USSegd -> Dist (Vector Int)
takeLengthsD (DUSSegd _ _ usegds)
= DUSegd.takeLengthsD usegds
takeIndicesD :: Dist USSegd -> Dist (Vector Int)
takeIndicesD (DUSSegd _ _ usegds)
= DUSegd.takeIndicesD usegds
takeElementsD :: Dist USSegd -> Dist Int
takeElementsD (DUSSegd _ _ usegds)
= DUSegd.takeElementsD usegds
takeStartsD :: Dist USSegd -> Dist (Vector Int)
takeStartsD (DUSSegd starts _ _)
= starts
takeSourcesD :: Dist USSegd -> Dist (Vector Int)
takeSourcesD (DUSSegd _ sources _)
= sources
takeUSegdD :: Dist USSegd -> Dist USegd
takeUSegdD (DUSSegd _ _ usegd)
= usegd