Haskell Repa означает BoundFixed?

В пакете Repa есть _ 1_ тип данных:

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

Я понимаю, что означает BoundConst (ячейки за пределами массива обрабатываются как одно значение), и я понимаю, что означает BoundClamp (ячейки за пределами массива имеют те же значения, что и ближайшая ячейка массива).

Что подразумевается под BoundFixed? Описание: Использовать фиксированное значение для граничных областей. Что такое «приграничный регион»? Это все краевые ячейки?


person Ana    schedule 01.11.2015    source источник


Ответы (1)


Чтение исходного кода для _ 1_ и _ 2_, похоже, что граничная область - это любая ячейка, значение которой будет вычисляться с использованием ячеек вне входного массива. BoundConst использует постоянное значение вне массива в качестве входных данных для свертки при выборке ячеек вне массива. BoundFixed использует постоянное значение в качестве результата каждый раз, когда свертка будет зависеть от значения вне массива.

Вы можете легко проверить это с помощью свертки идентичности 3x3 на небольшом изображении. BoundConst и BoundClamp вообще не должны менять изображение. BoundFixed a нарисовал бы одну a ячейку на изображении. BoundFixed со сверткой идентичности 2x2 должен рисовать границу только с двух сторон изображения. Я не могу рекомендовать использовать BoundFixed для чего-либо, кроме рисования границ, поскольку одна и та же свертка даст разные результаты только из-за размера трафарета.

person Cirdec    schedule 01.11.2015