// TODO: review iterators
for (int k=m; k<size_; ++k) {
final double y = accrualPeriod_.get(k)*x0.get(k);
m1.set(k,y/(1+y));
final double d = (m1.innerProduct(covariance.constRangeCol(k), m, k+1-m)-0.5*covariance.get(k, k)) * dt;
final double r = diff.rangeRow(k).innerProduct(dw)*sdt;
final double x = y*Math.exp(d + r);
m2.set(k, x/(1+x));
final double ip = m2.innerProduct(covariance.constRangeCol(k), m, k+1-m);