< 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 >