Haskell Repa的意思是BoundFixed?

时间:2015-11-01 05:26:13

标签: haskell repa

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

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

我理解BoundConst的含义(数组外的单元格被视为单个值),我理解BoundClamp的含义(数组外的单元格与最近的阵列单元格)。

BoundFixed是什么意思?描述是对边界区域使用固定值。什么是“边境地区”?这些都是边缘细胞吗?

1 个答案:

答案 0 :(得分:1)

阅读mapStencil2partitionForStencil的源代码,看起来边界区域是任何单元格,其值将使用输入数组外的单元格计算。 BoundConst在数组外部采样单元时,使用数组外部的常量值作为卷积的输入。只要卷积取决于数组外的值,BoundFixed就会使用常量值。

您可以在小图像上使用3x3身份卷积轻松测试。 BoundConstBoundClamp根本不应更改图像。 BoundFixed a会在图片上绘制一个单元格a边框。具有2x2身份卷积的BoundFixed应仅在图像的两侧绘制边框。我不建议将BoundFixed用于绘制边框以外的任何内容,因为相同的卷积会因模板尺寸而产生不同的结果。