Hi all. Suppose I have a large matrix with entries {0, 1} and I'd like to keep storage small by using a BitMatrix. Are there any tricks to squeeze better performance out of BitMatrix multiplication? I'm also curious about the performance difference between Matrix{Bool} and Matrix{Int8}. Thoughts or suggestions are appreciated. Thanks.
n, p = 1000, 100_000 x1 = rand(n, p) .> .5 x2 = Matrix{Bool}(x1) x3 = Matrix{Float64}(x1) x4 = Matrix{Int8}(x1) b = randn(p) @time x1 * b @time x2 * b @time x3 * b @time x4 * b 0.559938 seconds (7 allocations: 8.078 KB) 0.437336 seconds (7 allocations: 8.078 KB) 0.062144 seconds (7 allocations: 8.078 KB) 0.109573 seconds (7 allocations: 8.078 KB)