From a4096b66ab2df0753087d8d4e05cac611db10653 Mon Sep 17 00:00:00 2001 From: tpajenka Date: Wed, 27 Nov 2013 13:17:21 +0100 Subject: [PATCH] Accelerate mit Ausnahmen qualified import, Berechnung in Modul DCB.hs --- src/DCB.hs | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/DCB.hs diff --git a/src/DCB.hs b/src/DCB.hs new file mode 100644 index 0000000..c0cc703 --- /dev/null +++ b/src/DCB.hs @@ -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