60 double[] uniformsV =
new double[d + 1];
63 double[] BMPCApath = BMPCA.generatePath(uniform01);
69 for (
int j = 0; j < 3 * (d - 1); j += 3) {
70 oldIndexL = BMBridge.wIndexList[j];
71 newIndex = BMBridge.wIndexList[j + 1];
72 oldIndexR = BMBridge.wIndexList[j + 2];
74 temp = BMPCApath[newIndex] - BMPCApath[oldIndexL];
75 temp -= (BMPCApath[oldIndexR] - BMPCApath[oldIndexL]) * BMBridge.wMuDt[newIndex];
76 temp /= BMBridge.wSqrtDt[newIndex];
79 double dT = BMPCA.t[d] - BMPCA.t[0];
80 uniformsV[d] =
NormalDist.
cdf01((BMPCApath[d] - BMPCApath[0] - BMPCA.mu * dT) / (BMPCA.sigma * Math.sqrt(dT)));
88 for (
int j = 0; j < 3 * (d - 1); j += 3) {
89 oldIndexL = wIndexList[j];
90 newIndex = wIndexList[j + 1];
91 oldIndexR = wIndexList[j + 2];
95 path[newIndex] = path[oldIndexL] + (path[oldIndexR] - path[oldIndexL]) * y;
99 observationCounter = d;