I am a complete novice with CUDA and so I am probably overlooking something basic here with scoping or something. As I was reading over the first listing in the tutorial I see:

```
do i=1,N
tempVal = X(i)*X(i) + Y(i)*Y(i)
if (tempVal < 1) then
temp(i) = 1
else
temp(i) = 0
endif
```

So now temp(i) equals either 0 or 1 for all i in 1,N. Right?

Then later we see:

```
do i=1,N
sumA = sumA + temp(i)
sumSq = sumSq + (temp(i)*temp(i))
```

Since each value of temp(i) is either 0 or 1, temp(i)*temp(i) is just 0*0=0 or 1*1=1 for each value of i. So sumA is equal to sumSq. Right? And what is the point of independently calculating the same value? And later:

```
meanA = sumA / real(N);
meanSq = sumSq / real(N);
```

Then doesn’t meanA equal meanSq? And how does that help compute the variance? So what is wrong with my understanding?