Peter Alexander:
How could this possibly be useful? It's like the loop, but you
lose the index variable. I can't see how you could possibly do
anything with this.
I think this feature is a part of Cilk+. Maybe I have not fully
understood this feature, or maybe some Intel developers are mad
:-)
I think in code like this:
if (a[] >= 0)
b[] += c[];
The 'b' and 'c' arrays receive the implicit index of the items of
'a' that aren't negative.
I think its semantics is a bit like this (assuming zip() supports
ref iteration), you see no index variable here:
parallel_foreach (ai, ref bi, ci; zip(a, b, c))
if (ai > 0)
bi += ci;
I think it's something commonly useful.
Can you show an example of some code that uses this?
On the net I have found two examples of Cilk+ code that uses that
feature. One of them is referenced in the first email of this
thread. With Google you can find the full code from Intel that
piece of code comes from.
Bye,
bearophile