More on vectorized comparisons
tn
no at email.com
Fri Aug 24 09:53:15 PDT 2012
On Thursday, 23 August 2012 at 00:19:39 UTC, bearophile wrote:
> At page 69 of those slides there is some code that looks
> interesting, I think this is a reduced version of part of it,
> that shows another way to use vectorized comparisons:
>
>
> void main() {
> double[] a = [1.0, 1.0, -1.0, 1.0, 0.0, -1.0];
> double[] b = [10, 20, 30, 40, 50, 60];
> double[] c = [1, 2, 3, 4, 5, 6];
> if (a[] > 0)
> b[] += c[];
> }
>
>
> I think that code is semantically equivalent to:
>
> void main() {
> double[] a = [1.0, 1.0, -1.0, 1.0, 0.0, -1.0];
> double[] b = [10, 20, 30, 40, 50, 60];
> double[] c = [1, 2, 3, 4, 5, 6];
> foreach (i; 0 .. a.length)
> if (a[i] > 0)
> b[i] += c[i];
> }
The proposed syntax looks weird. Wouldn't the followind be more
intuitive:
foreach (i; a[i] > 0)
b[i] += c[i];
Or alternatively it would be nice to be able to do it like in
Matlab:
i = (a[] > 0);
b[i] += c[i];
More information about the Digitalmars-d
mailing list