I was playing around with flipping numbers of an array, and I was surprised that doing so with BitArrays is much slower. I think the code below is pretty clear,

```
using BenchmarkTools
using Random
a = rand(-1:2:1, 26, 11)
c = bitrand(26, 11)
b = 2 * c .- 1
function loop(a, b)
for i in eachindex(a)
if b[i] == 1
a[i] *= -1
end
end
end
function loop2(a, c)
for i in eachindex(a)
if c[i] == true
a[i] *= -1
end
end
end
loop(a, b)
loop2(a, c)
@btime loop(a, b);
@btime loop2(a, c);
```

loop(a,b) gives me about **55 ns**, and loop2(a,c) gives about **200 ns**.

Why would this happen? And what is the absolute fastest way to do this loop?