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)
Другие вопросы по тегам