Haskell BoundFixed 的 Repa 含义?

Haskell Repa meaning of BoundFixed?

在 Repa 包中,有一个 Boundary 数据类型:

data Boundary a
        = BoundFixed !a
        | BoundConst !a
        | BoundClamp
        deriving (Show)

我理解BoundConst(数组外的单元格被视为单个值)是什么意思,我理解BoundClamp(数组外的单元格是相同的)的意思值作为最接近的数组单元格)。

BoundFixed是什么意思?描述是对边界区域使用固定值。 "border region" 是什么?这些都是边缘单元吗?

通读 mapStencil2 and partitionForStencil 的源代码,边界区域似乎是任何单元格,其值将使用输入数组之外的单元格进行计算。 BoundConst 在对数组外的单元格进行采样时,使用数组外的常数值作为卷积的输入。 BoundFixed 每当卷积取决于数组外的值时,都使用常量值作为结果。

您可以在小图像上使用 3x3 恒等卷积轻松地对此进行测试。 BoundConstBoundClamp 根本不应该改变图像。 BoundFixed a 会在图像上绘制一个单元格 a 边框。 BoundFixed 使用 2x2 恒等卷积应该只在图像的两侧绘制边框。我不建议将 BoundFixed 用于绘制边框以外的任何东西,因为相同的卷积会因为模板大小而产生不同的结果。