if (std::fabs(calculated-expected[j]) > 1.0e-12) { BOOST_FAIL("using " << tag << " process "
if (std::fabs(calculated-expected[j]) > 1.0e-10) { BOOST_ERROR("using " << tag << " process "
void testMultiple(        const std::vector<boost::shared_ptr<StochasticProcess1D> >& processes,        const Matrix& correlation,        const std::string& tag, Real expected[]) {    typedef PseudoRandom::rsg_type rsg_type;    typedef MultiPathGenerator<rsg_type>::sample_type sample_type;    BigNatural seed = 42;    Time length = 10;    Size timeSteps = 12;    Size assets = processes.size();    rsg_type rsg = PseudoRandom::make_sequence_generator(timeSteps*assets,                                                         seed);    MultiPathGenerator<rsg_type> generator(processes, correlation,                                           TimeGrid(length, timeSteps),                                           rsg, false);    for (Size i=0; i<100; i++)        generator.next();    sample_type sample = generator.next();    for (Size j=0; j<assets; j++) {        Real calculated = sample.value[j][sample.value.pathSize()-1];        if (std::fabs(calculated-expected[j]) > 1.0e-12) {            BOOST_FAIL("using " << tag << " process "                       << "(" << io::ordinal(j+1) << " asset:)\n"                       << std::setprecision(13)                       << "    calculated: " << calculated << "\n"                       << "    expected:   " << expected[j]);        }    }}