我正在编写一个生成图像的程序,我想将其带入 Repa 数组。我目前使用的类型:
data Colour = Colour Double Double Double
来表示像素,我有一个(可能效率低下但功能强大)函数将 aColour
转换为DIM1
数组:
colourToRepa :: Colour -> Array U DIM1 Double
colourToRepa (Colour r g b) = R.fromListUnboxed (Z :. (3::Int)) [r,g,b]
目前我程序中的图像只是一个[Colour]
具有(Int, Int)
代表尺寸的值。
我可以使用它来轻松构建一个Array V DIM2 Colour
,但是有没有办法(使用colourToRepa
或其他方式)将此数组扩展为一个Array U DIM3 Double
?
我可以使用列表,map
但 Repa 的映射保留了数组的形状(我想从 aDIM2
转到 a DIM3
)。