< prev index next >
src/hotspot/share/utilities/numberSeq.cpp
Print this page
rev 59703 : imported patch 8238687-investigate-memory-uncommit-during-young-gc
@@ -26,15 +26,22 @@
#include "memory/allocation.inline.hpp"
#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/numberSeq.hpp"
-AbsSeq::AbsSeq(double alpha) :
- _num(0), _sum(0.0), _sum_of_squares(0.0),
+AbsSeq::AbsSeq(double alpha) : _num(0), _sum(0.0), _sum_of_squares(0.0),
_davg(0.0), _dvariance(0.0), _alpha(alpha) {
}
+void AbsSeq::reset() {
+ _num = 0;
+ _sum = 0.0;
+ _sum_of_squares = 0.0;
+ _davg = 0.0;
+ _dvariance = 0.0;
+}
+
void AbsSeq::add(double val) {
if (_num == 0) {
// if the sequence is empty, the davg is the same as the value
_davg = val;
// and the variance is 0
@@ -129,15 +136,14 @@
_sum_of_squares += val * val;
++_num;
}
-TruncatedSeq::TruncatedSeq(int length, double alpha):
+TruncatedSeq::TruncatedSeq(uint length, double alpha):
AbsSeq(alpha), _length(length), _next(0) {
_sequence = NEW_C_HEAP_ARRAY(double, _length, mtInternal);
- for (int i = 0; i < _length; ++i)
- _sequence[i] = 0.0;
+ TruncatedSeq::reset();
}
TruncatedSeq::~TruncatedSeq() {
FREE_C_HEAP_ARRAY(double, _sequence);
}
@@ -169,11 +175,11 @@
// can't easily keep track of this incrementally...
double TruncatedSeq::maximum() const {
if (_num == 0)
return 0.0;
double ret = _sequence[0];
- for (int i = 1; i < _num; ++i) {
+ for (uint i = 1; i < _num; ++i) {
double val = _sequence[i];
if (val > ret)
ret = val;
}
return ret;
@@ -209,11 +215,11 @@
double xy_sum = 0.0;
double x_avg = 0.0;
double y_avg = 0.0;
int first = (_next + _length - _num) % _length;
- for (int i = 0; i < _num; ++i) {
+ for (uint i = 0; i < _num; ++i) {
double x = (double) i;
double y = _sequence[(first + i) % _length];
x_squared_sum += x * x;
x_sum += x;
@@ -229,10 +235,17 @@
double b0 = y_avg - b1 * x_avg;
return b0 + b1 * num;
}
+void TruncatedSeq::reset() {
+ AbsSeq::reset();
+ for (uint i = 0; i < _length; ++i) {
+ _sequence[i] = 0.0;
+ }
+ _next = 0;
+}
// Printing/Debugging Support
void AbsSeq::dump() { dump_on(tty); }
@@ -249,11 +262,11 @@
}
void TruncatedSeq::dump_on(outputStream* s) {
AbsSeq::dump_on(s);
s->print_cr("\t\t _length = %d, _next = %d", _length, _next);
- for (int i = 0; i < _length; i++) {
+ for (uint i = 0; i < _length; i++) {
if (i%5 == 0) {
s->cr();
s->print("\t");
}
s->print("\t[%d]=%7.3f", i, _sequence[i]);
< prev index next >