{-# LANGUAGE TypeFamilies, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts #-}

-- | An instance
--
-- @
--     instance Accelerate.IsScalar s =>
--              SVM.ScanVectorMachine (Accelerate.Array Accelerate.DIM1) s
-- @
--
-- demonstrating that the @Data.Array.Accelerate@
-- library for GPU computation is able to support the SVM operations

module Control.Parallel.ScanVectorMachine.AccelerateSVM where
import qualified Data.Array.Accelerate as Accelerate
import Control.Parallel.ScanVectorMachine.ScanVectorMachine as SVM

instance Accelerate.IsScalar s => SVM.ScanVectorMachine (Accelerate.Array Accelerate.DIM1) s where
  neg         a       = error "FIXME: not implemented"
  leq         a b     = error "FIXME: not implemented"
  op       o  a b     = error "FIXME: not implemented"
  select      b x y   = error "FIXME: not implemented"
  permute     a i     = error "FIXME: not implemented"
  insert      a pos s = error "FIXME: not implemented"
  extract     a pos   = error "FIXME: not implemented"
  distribute  s len   = error "FIXME: not implemented"
  length      a       = error "FIXME: not implemented"
  scan     o  a       = error "FIXME: not implemented"