Skip to content

Commit 41e075d

Browse files
committed
QPR-12140 remove unneeded member variables
1 parent ff9bf25 commit 41e075d

2 files changed

Lines changed: 20 additions & 24 deletions

File tree

ql/math/randomnumbers/sobolbrownianbridgersg.cpp

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,29 @@
2727
namespace 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
}

ql/math/randomnumbers/sobolbrownianbridgersg.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ namespace QuantLib {
4545
Size dimension() const;
4646

4747
private:
48-
const Size factors_, steps_, dim_;
4948
mutable sample_type seq_;
5049
mutable SobolBrownianGenerator gen_;
5150
};
@@ -67,10 +66,9 @@ namespace QuantLib {
6766
Size dimension() const;
6867

6968
private:
70-
const Size factors_, steps_, dim_;
7169
mutable sample_type seq_;
7270
mutable Burley2020SobolBrownianGenerator gen_;
7371
};
74-
}}
72+
}
7573

7674
#endif

0 commit comments

Comments
 (0)