我正在编写一个生成图像的程序,我想将其带入 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)。