I have a vector of bools that looks like

vector<bool> vals

position: 0 1 2 3 4 5

bool val: 0 1 0 0 1 1

the bool val indexes to a 6x6 matrix A where i have random values stored.

in my following vector, I would want to sum the values of A(1,4),A(4,5),A(5,5)

if i had

position: 0 1 2 3 4 5

bool val: 0 1 1 0 1 0

I would want to sum A(1,2), A(2,4),A(4,4)

what is the fastest way to loop through the bool vector and calculate the values i want?

i was thinking something along the lines of the above, but there are problems when my bool vector vals[0]=1, and my matrix A might have non-zero values for A[row][col] that i sum.Code:double sum = 0; int j = 0; int k = 0; for(int i =0; i<vals.size(); ++i) { k += -(vals[i]-1); j= i*vals[i]; //sum +=A[j-k][j] }

thoughts?