1package umontreal.ssj.mcqmctools.anova;
3import umontreal.ssj.rng.RandomStream;
4import umontreal.ssj.hups.PointSetIterator;
5import umontreal.ssj.mcqmctools.*;
6import umontreal.ssj.stat.Tally;
28 public AnovaVarianceEstimator() {
29 this.integrator =
null;
34 return varEstimator.getModel();
37 public double getApproximateMean() {
38 return varEstimator.getApproximateMean();
42 varEstimator.setModel(model, approxMean);
55 this.integrator = integrator;
63 return varEstimator.getCoordinateSets();
71 varEstimator.setCoordinateSets(coordSets);
101 List<CoordinateSet> coordSets = varEstimator.getCoordinateSets();
102 int nSets = coordSets.size();
104 if (vars ==
null || vars.length != nSets + 2)
105 vars =
new double[nSets + 2];
107 if (integrator ==
null)
108 throw new IllegalStateException(
"integrator has not been initialized");
110 integrator.setStream(stream);
111 integrator.integrate(varEstimator, vars);
113 vars[nSets + 1] -= vars[nSets] * vars[nSets];
115 for (
int i = 0; i < nSets; i++) {
121 for (
int i2 = 0; i2 < i; i2++) {
140 return varEstimator.getDimension();
149 String s = String.format(
"ANOVA Variance Estimator" +
" [model=%s]", varEstimator.getModel());
157 return getModel().getTag();
This interface defines the basic structures to handle multiple streams of uniform (pseudo)random numb...