mprod could sum directly as in Exchangeable instead of appending them, IIUC

`mprod += resid_op[time_od <= self.m]` 
?