При попытке запустить приведенный ниже пример кода (похожий на справочную таблицу) он всегда генерирует следующее сообщение об ошибке: «Чистое определение функции «out» вызывает функцию «color» неограниченным образом в измерении 0».
RDom r(0, 10, 0, 10);
Func label, color, out;
Var x,y,c;
label(x,y) = 0;
label(r.x,r.y) = 1;
color(c) = 0;
color(label(r.x,r.y)) = 255;
out(x,y) = color(label(x,y));
out.realize(10,10);
Перед вызовом реализации я безуспешно пытался статически установить привязку, как показано ниже.
color.bound(c,0,10);
label.bound(x,0,10).bound(y,0,10);
out.bound(x,0,10).bound(y,0,10);
Я также посмотрел примеры гистограмм, но они немного другие.
Это какие-то ограничения в Halide?