You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Polars 2.0 support. fit.sample() returns the source's rows in the source's order again. Polars 2.0 collects with the streaming engine by default, whose joins do not keep row order unless asked, so the rows came back shuffled. Under Polars 2.0, repeated fits of the same model can differ in the last digit or so (around 1e-16 relative): its streaming engine adds floating-point sums in an order that depends on thread scheduling. Under Polars 1.x they remain identical bit for bit.
Dropping singletons no longer inflates memory with a wide design. The dropped levels were anti-joined after the design was evaluated, so the streaming join buffered every design column. The rows are now dropped from the source columns before the design is evaluated.
Finding singletons takes fewer scans. The search used to stop only after a full round over the fixed effects found nothing. It now stops once every fixed effect has been checked since the last drop, since a dimension's own drop cannot leave a singleton in it.
Sorting the buckets and building the cell table takes less memory under Polars 2.0.
The explicit solver builds its matrix faster and in less memory.
Importing hdfe_stream costs a little less memory.
Empty run directories no longer pile up on NFS.
Slightly less verbose default logging. CG iteration messages are now logged at DEBUG level and therefore not printed by default.