Является ли `[<var> в <распределенной переменной>]` эквивалентным `forall`?

Я заметил кое-что в фрагменте кода, который мне дали:

var D: domain(2) dmapped Block(boundingBox=Space) = Space;
var A: [D] int;
[a in A] a = a.locale.id;

Является [a in A] эквивалентно forall a in A a = a.locale.id?

1 ответ

Решение

Да, точно. В часовне [a in A] expr эквивалентно forall a in A do expr,

Что касается названия этого вопроса, обратите внимание, что это не зависит от того, A распространяется Например, вы также можете написать [i in 1..n] скорее, чем forall i in 1..n do,

Типы массивов в часовне, как [D] real можно так же читать как

"для всех показателей в D, выделить элемент типа real ".

Другие вопросы по тегам