我一直在一个项目中工作,该项目一直在使用列表来计算人工神经网络操作。现在,我想对其进行改造Data.Vector
以提高其效率。Foreign.Storable
但是,目前我在实施一个必不可少的定义时遇到了麻烦。
好的,首先,我使用Data.Array.Repa
了类似以下的类型同义词 ( CAMTypes.hs
) 进行计算:
type NTTVU = Array U VShape NTT
然后后来我想使用Data.Vector
如下:
import qualified Data.Vector.Storable as VS
-- ...
trs = createThreshold 3 0 [9,8,7] :: NTTVU
但是,我收到以下错误:
$> VS.singleton trs
*** Exception: Prelude.undefined
CallStack (from HasCallStack):
error, called at libraries/base/GHC/Err.hs:79:14 in base:GHC.Err
undefined, called at ./Data/Vector/Storable/Mutable.hs:131:22 in vector-0.12.0.1-JlawpRjIcMJIYPJVsWriIA:Data.Vector.Storable.Mutable
CallStack (from -prof):
Data.Vector.Storable.Mutable.basicUnsafeNew.size (Data/Vector/Storable/Mutable.hs:131:7-36)
Data.Vector.Storable.Mutable.basicUnsafeNew (Data/Vector/Storable/Mutable.hs:(124,3)-(132,38))
Data.Vector.Storable.Mutable.CAF:lvl12_r7YZK (<no location info>)
我已经完成了 的实现instance Storable NTTVU where
,但仍然抱怨;我启用了分析,但没有告诉我更多信息;尝试按步骤调试,但也没有成功。希望有人知道很多关于它以及如何解决它。
有关更多上下文,整个项目和相关文件: