Exp a -> a в Haskell Accelerate
Есть ли функция с такой сигнатурой типа:
Exp a -> a
в ускоренной библиотеке для Haskell?
Например, у меня есть выражение:
max = maximum mat !! 0
где
mat :: Acc (Matrix Int)
Тогда max имеет тип
Exp Int
, но я бы хотел, чтобы Макс выразился простым хаскеллом
Int
.
1 ответ
Решение
Сначала вам нужно преобразовать
Exp
в
Acc
, затем запустите это и, наконец, проиндексируйте полученный массив:
indexArray (run (unit max)) Z
Возможно, тогда проще использовать максимальный массив напрямую:
indexArray (run (maximum mat)) (0 :. Z)