source: DCWoRMS/branches/coolemall/src/simulator/stats/DCwormsAccumulator.java @ 1396

Revision 1396, 3.9 KB checked in by wojtekp, 11 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1/**
2 *
3 */
4package simulator.stats;
5
6
7import simulator.DataCenterWorkloadSimulator;
8import gridsim.Accumulator;
9
10/**
11 * This class temporarily adds new methods to {@link Accumulator} class.
12 *
13 * @author Stanislaw Szczepanowski
14 *
15 */
16public class DCwormsAccumulator extends Accumulator {
17
18        public DCwormsAccumulator() {
19                super();
20        }
21
22        public DCwormsAccumulator(Accumulator acc) {
23                n_ = acc.getCount();
24                mean_ = acc.getMean();
25                sqrMean_ = acc.getStandardDeviation() + (mean_ * mean_);
26                min_ = acc.getMin();
27                max_ = acc.getMax();
28                last_ = acc.getLast();
29        }
30
31        /**
32         * This method must be overloaded, since it returns the wrong value.
33         */
34        public double getStandardDeviation() {
35                return Math.sqrt(getVariance());
36        }
37
38        /**
39         * Calculates the variance of accumulated items
40         *
41         * @return the Standard Deviation of accumulated items
42         * @pre $none
43         * @post $none
44         */
45        public double getVariance() {
46                return sqrMean_ - (mean_ * mean_);
47        }
48
49        public boolean equals(Object obj) {
50                if (!(obj instanceof DCwormsAccumulator))
51                        return false;
52
53                DCwormsAccumulator otherAcc = (DCwormsAccumulator) obj;
54                if (Double.compare(this.last_, otherAcc.last_) != 0)
55                        return false;
56                if (Double.compare(this.max_, otherAcc.max_) != 0)
57                        return false;
58                if (Double.compare(this.mean_, otherAcc.mean_) != 0)
59                        return false;
60                if (Double.compare(this.min_, otherAcc.min_) != 0)
61                        return false;
62                if (Double.compare(this.n_, otherAcc.n_) != 0)
63                        return false;
64                if (Double.compare(this.sqrMean_, otherAcc.sqrMean_) != 0)
65                        return false;
66
67                return true;
68        }
69
70        public String toString() {
71                String accumulatorSeparator = ";";
72                StringBuffer buffer = new StringBuffer(50);
73
74                buffer.append(accumulatorSeparator);
75                buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
76                                .getMean()));
77                buffer.append(accumulatorSeparator);
78                buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
79                                .getStandardDeviation()));
80                buffer.append(accumulatorSeparator);
81                buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
82                                .getVariance()));
83                buffer.append(accumulatorSeparator);
84                buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
85                                .getMin()));
86                buffer.append(accumulatorSeparator);
87                buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
88                                .getMax()));
89                buffer.append(accumulatorSeparator);
90                buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
91                                .getSum()));
92                buffer.append(accumulatorSeparator);
93                buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
94                                .getCount()));
95                buffer.append(accumulatorSeparator);
96
97                return buffer.toString();
98        }
99
100        public String toFormatedString() {
101
102                String accumulatorSeparator = "; ";
103                StringBuffer buffer = new StringBuffer(50);
104
105                buffer.append(accumulatorSeparator);
106                buffer.append(String.format("%16s",
107                                DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
108                                                .getMean())));
109                buffer.append(accumulatorSeparator);
110                buffer.append(String.format("%16s",
111                                DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
112                                                .getStandardDeviation())));
113                buffer.append(accumulatorSeparator);
114                buffer.append(String.format("%16s",
115                                DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
116                                                .getVariance())));
117                buffer.append(accumulatorSeparator);
118                buffer.append(String.format("%16s",
119                                DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
120                                                .getMin())));
121                buffer.append(accumulatorSeparator);
122                buffer.append(String.format("%16s",
123                                DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
124                                                .getMax())));
125                buffer.append(accumulatorSeparator);
126                buffer.append(String.format("%16s",
127                                DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
128                                                .getSum())));
129                buffer.append(accumulatorSeparator);
130                buffer.append(String.format("%16s",
131                                DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
132                                                .getCount())));
133                buffer.append(accumulatorSeparator);
134
135                return buffer.toString();
136        }
137}
Note: See TracBrowser for help on using the repository browser.