Context:
The rounding parameter isn't very clear to me. I get the basic idea of always rounding in the Pool/Vault's favor, but without knowing when each function is called, it was confusing. I couldn't find anything in the docs about rounding - did I miss it somewhere?
Speaking of rounding: in both Stable and Weighted implementations and in the pending PR for Gyro 2 CLP, there's some logic for returning the computeInvariant rounded up and down. Is this always (or mostly) the case? It might be worth highlighting this pattern.
Context: