public override Matrix diffusion(double t, Vector x) { Matrix pca = corrModel_.pseudoSqrt(t, x); Vector vol = volaModel_.volatility(t, x); for (int i = 0; i < size_; ++i) { /*transform(pca.row_begin(i), pca.row_end(i), * pca.row_begin(i), * bind2nd(multiplies<double>(), vol[i]));*/ for (int j = 0; j < size_; ++j) { pca[i, j] = pca[i, j] * vol[i]; } //pca.column(i).ForEach((ii, v) => v *= vol[ii]); } return(pca); }