MAINT: speed up the code using decompositions that are more confusing but which pre-calculate more things so the reconstructions are faster