2727namespace QuantLib {
2828
2929 namespace {
30- void nextSequence ( const SobolBrownianGeneratorBaseG & gen, std::vector<Real>& seq) {
30+ void setNextSequence (SobolBrownianGeneratorBase & gen, std::vector<Real>& seq) {
3131 gen.nextPath ();
3232 std::vector<Real> output (gen.numberOfFactors ());
33- for (Size i = 0 ; i < gen.numberOfSetps (); ++i) {
33+ for (Size i = 0 ; i < gen.numberOfSteps (); ++i) {
3434 gen.nextStep (output);
35- std::copy (output.begin (), output.end (), seq.begin () + i * factors_ );
35+ std::copy (output.begin (), output.end (), seq.begin () + i * gen. numberOfFactors () );
3636 }
3737 }
3838 }
3939
40- SobolBrownianBridgeRsg::SobolBrownianBridgeRsg (
41- Size factors, Size steps,
42- SobolBrownianGenerator::Ordering ordering,
43- unsigned long seed,
44- SobolRsg::DirectionIntegers directionIntegers)
45- : factors_(factors), steps_(steps), dim_(factors*steps),
46- seq_ (sample_type::value_type(factors*steps), 1.0),
47- gen_(factors, steps, ordering, seed, directionIntegers) {
48- }
40+ SobolBrownianBridgeRsg::SobolBrownianBridgeRsg (Size factors,
41+ Size steps,
42+ SobolBrownianGenerator::Ordering ordering,
43+ unsigned long seed,
44+ SobolRsg::DirectionIntegers directionIntegers)
45+ : seq_(sample_type::value_type(factors * steps), 1.0 ),
46+ gen_ (factors, steps, ordering, seed, directionIntegers) {}
4947
5048 const SobolBrownianBridgeRsg::sample_type&
5149 SobolBrownianBridgeRsg::nextSequence () const {
52- nextSequence (gen_, seq_);
50+ setNextSequence (gen_, seq_. value );
5351 return seq_;
52+
5453 }
5554
5655 const SobolBrownianBridgeRsg::sample_type&
@@ -59,23 +58,22 @@ namespace QuantLib {
5958 }
6059
6160 Size SobolBrownianBridgeRsg::dimension () const {
62- return dim_ ;
61+ return gen_. numberOfFactors () * gen_. numberOfSteps () ;
6362 }
6463
6564 Burley2020SobolBrownianBridgeRsg::Burley2020SobolBrownianBridgeRsg (
66- Size factors, Size steps,
65+ Size factors,
66+ Size steps,
6767 SobolBrownianGenerator::Ordering ordering,
6868 unsigned long seed,
6969 SobolRsg::DirectionIntegers directionIntegers,
7070 unsigned long scrambleSeed)
71- : factors_(factors), steps_(steps), dim_(factors*steps),
72- seq_(sample_type::value_type(factors*steps), 1.0),
73- gen_(factors, steps, ordering, seed, directionIntegers, scrambleSeed) {
74- }
71+ : seq_(sample_type::value_type(factors * steps), 1.0),
72+ gen_(factors, steps, ordering, seed, directionIntegers, scrambleSeed) {}
7573
7674 const Burley2020SobolBrownianBridgeRsg::sample_type&
7775 Burley2020SobolBrownianBridgeRsg::nextSequence () const {
78- nextSequence (gen_, seq_);
76+ setNextSequence (gen_, seq_. value );
7977 return seq_;
8078 }
8179
@@ -85,7 +83,7 @@ namespace QuantLib {
8583 }
8684
8785 Size Burley2020SobolBrownianBridgeRsg::dimension () const {
88- return dim_ ;
86+ return gen_. numberOfFactors () * gen_. numberOfSteps () ;
8987 }
9088
9189}
0 commit comments