protected void AddInfinities(int missingInfinities, DoubleBuffer buffer) { RandomSamplingAssistant oldAssistant = this.samplingAssistant; this.samplingAssistant = null; // switch off sampler //double[] infinities = new double[missingInfinities]; Boolean even = true; for (int i = 0; i < missingInfinities; i++) { if (even) { buffer.Values.Add(Double.MaxValue); } else { buffer.Values.Add(-Double.MaxValue); } //if (even) {infinities[i]=Double.MaxValue;} //else {infinities[i]=-Double.MaxValue;} //if (even) {this.Add(Double.MaxValue);} //else {this.Add(-Double.MaxValue);} even = !even; } //buffer.Values.addAllOfFromTo(new DoubleArrayList(infinities),0,missingInfinities-1); //this.totalElementsFilled -= infinities; this.samplingAssistant = oldAssistant; // switch on sampler again }
public override void Clear() { base.Clear(); this.beta = 1.0; this.weHadMoreThanOneEmptyBuffer = false; //this.setSamplingRate(samplingRate,N); RandomSamplingAssistant assist = this.samplingAssistant; if (assist != null) { this.samplingAssistant = new RandomSamplingAssistant((long)System.Math.Floor(N / samplingRate), N, assist.RandomGenerator); } }
protected long N; // see method sampleNextElement() #endregion #region Property #endregion #region Constructor /// <summary> /// /// </summary> /// <param name="b"></param> /// <param name="k"></param> /// <param name="N"></param> /// <param name="samplingRate"></param> /// <param name="generator"></param> public KnownDoubleQuantileEstimator(int b, int k, long N, double samplingRate, RandomEngine generator) { this.samplingRate = samplingRate; this.N = N; if (this.samplingRate <= 1.0) { this.samplingAssistant = null; } else { this.samplingAssistant = new RandomSamplingAssistant((long)System.Math.Floor(N / samplingRate), N, generator); } SetUp(b, k); this.Clear(); }