source: DCWoRMS/trunk/src/simulator/stats/GSSAccumulator.java @ 477

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