Accelerate mit Ausnahmen qualified import, Berechnung in Modul DCB.hs

This commit is contained in:
tpajenka 2013-11-27 13:17:21 +01:00
parent a307457e16
commit a4096b66ab

63
src/DCB.hs Normal file
View File

@ -0,0 +1,63 @@
-----------------------------------------------------------------------------
--
-- Module : DCB
-- Copyright :
-- License : AllRightsReserved
--
-- Maintainer :
-- Stability :
-- Portability :
--
-- |
--
-----------------------------------------------------------------------------
module DCB where
--import Stream hiding (map) --same as Data.Stream imported above?
import Data.Array.Accelerate (Z(..), DIM1, DIM2, DIM3, Scalar, Vector, (:.)(..), Array,
Int8, Int, Float, Double, Acc, Exp, Elt)
import qualified Data.Array.Accelerate as A
-- change to Data.Array.Accelerate.CUDA as I and link accelerate-cuda to use GPU instead of CPU
-- depends on accelerate-cuda package in cabal, which needs the installed CUDA-stuff form
-- nVidia (nvcc, header-files, ...) and the propriatary driver
import Data.Array.Accelerate.Interpreter as I
type Matrix e = Array DIM2 e
type Attr = Matrix Double
-- Adjecency-Matrix
type Adj = Matrix Int8
-- Vector of the Adjecency-Matrix
type AdjV = Vector Int8
newtype Constraints = Matrix Double
-- Graph consists of a Vector denoting which colums of the matrix represents wich originating
-- column in the global adjencency-matrix, the reduces adjencency-matrix of the graph, a
-- matrix of constraints and a scalar denoting the density
type Density = Scalar Float
-- Graph
type Graph = (Vector Int8, Adj, Constraints, Density)
-- Vector of Graphs
type MultiGraph e = (Vector Int8, Array DIM3 e, Constraints, Density)
expand :: Acc (MultiGraph Int8)-> Acc Adj -> Acc Attr -> Acc (MultiGraph Int8)
expand g a att = undefined
-- constraint gets a Graph and an Attribute-Matrix and yields true, if the Graph still fulfills
-- all constraints defined via the Attribute-Matrix.
constraint :: Acc Graph -> Acc Attr -> Acc (Scalar Bool)
constraint g a = undefined
-- addPoint gets a graph and a tuple of an adjecancy-Vector with an int wich column of the
-- Adjacency-Matrix the Vector should represent to generate further Graphs
addPoint :: Acc Graph -> Acc (Adj, (Scalar Int)) -> Acc (MultiGraph Int8)
addPoint g a = undefined
-- addablePoints yields all valid addititonsto a Graph
addablePoints :: Acc Adj -> Acc Graph-> Acc (Vector Int8)
addablePoints a g = undefined