I have hard times understanding the following lines of codes seen in both SegmentTrainer and NestedTrainer which compute the Betas in Log space, I would appreciate it if you can help me on that,

initMDone = computeLogMi(dataSeq,i,i+ell,featureGenNested,lambda,Mi_YY,Ri_Y,reuseM,initMDone);

tmp_Y.assign(Ri_Y);

tmp_Y.assign(beta_Y[i+ell], sumFunc);

Mi_YY.zMult(tmp_Y, beta_Y[i],1,1,false);

OK, in general to compute beta_Y[i] we should do this,

computeMi(featureGenerator,lambda,dataSeq,i,Mi_YY,Ri_Y);

tmp_Y.assign(beta_Y[i]);

tmp_Y.assign(Ri_Y,multFunc);

Mi_YY.zMult(tmp_Y, beta_Y[i-1]);

Which makes sense to me, but in Log space how can you multiply Mi_YY to tmp_Y and add the result to beta_Y? They are in log space.

Regards