Clément Renault
Clément Renault
> 1. For commutative & (!assignment) ops: We can flip _B1_ for _B2_ when _N1_ > _N2_. > > * In other words: Whenever it is possible to flip the...
> To generalize to any kind of aggregation the user might need to do. The intuition is to have an API that allows users to do lazy operations with a...
Do you think that it could be a good way to fix that by introducing an iterator type that wraps another iterator i.e. `100..10000` with some density parameter i.e. `Density::dense(0..1000)`,...
> I'm not sure what the right approach to testing this is. Do you mean benchmarking the constant length or checking that `select` which uses `len()` is valid? You already...
> This is what I meant. I'm trying to think of a clean way to `debug_assert` that each time the len changes we compare it against the computed len Wouldn't...
I just checked in the playground and the macro expansion indeed works like that: [it didn't panic when compiling in release](https://play.rust-lang.org/?version=stable&mode=release&edition=2021).
> Of course it does. Why should it recompute the cached len? Ok so we should trick by doing a `fold` instead.
I just added some benchmarks and the results are not so great, probably because bitmaps lengths are not that big. ``` union_with_multi time: [2.1961 us 2.2020 us 2.2085 us] Found...
Even with more bitmaps the banchmarks results are not good at all. ``` union_with_multi time: [206.96 us 207.68 us 208.40 us] change: [-0.4573% -0.0425% +0.3423%] (p = 0.84 > 0.05)...
I updated the algorithm to do the operations directly on the `Stores` and not the containers, benchmarks results didn't really changed so I decided to check performances in detail with...