35 data.setAutoDelete(
true);
45void KStats::clearAll(){
51void KStats::enterData(CALCAMNT _data){
54 newdata =
new CALCAMNT;
59 printf(
"Added %Lg\n",*newdata);
60 printf(
"count %d\n",data.count());
66void KStats::clearLast(){
71printf(
"count %d\n",data.count());
77CALCAMNT KStats::sum(){
79 CALCAMNT result = 0.0;
81 for ( dp=data.first(); dp != 0; dp=data.next() ){
88 printf(
"Sum %Lg\n",result);
98 if ( data.count() == 0 )
103 CALCAMNT result = *(data.first());
104 printf(
"result=%f\n",result);
106 CALCAMNT *dp = data.next();
107 for ( ; dp != 0; dp=data.next() )
116CALCAMNT KStats::max()
118 if ( data.count() == 0 )
121 CALCAMNT result = *(data.first());
122 CALCAMNT *dp = data.next();
123 for ( ; dp != 0; dp=data.next() )
130CALCAMNT KStats::mul(){
132 CALCAMNT result = 1.0;
134 for ( dp=data.first(); dp != 0; dp=data.next() ){
143CALCAMNT KStats::median(){
152 for ( dp=data.first(); dp != 0; dp=data.next() ){
157 for(
int l = 0; l < (int)list.count();l++){
159 printf(
"Sorted %Lg\n",*list.at(l));
164 bound = list.count();
176 index = (bound - 1 ) / 2 + 1;
177 result = *list.at(index - 1 );
182 result = ((*list.at(index - 1)) + (*list.at(index)))/2;
191CALCAMNT KStats::std_kernel(){
193 CALCAMNT result = 0.0;
199 for ( dp=data.first(); dp != 0; dp=data.next() ){
201 result += (*dp - _mean) * (*dp - _mean);
206 printf(
"std_kernel %Lg\n",result);
214CALCAMNT KStats::sum_of_squares(){
216 CALCAMNT result = 0.0;
218 for ( dp=data.first(); dp != 0; dp=data.next() ){
220 result += (*dp) * (*dp);
225 printf(
"Sum of Squares %Lg\n",result);
232CALCAMNT KStats::mean(){
234 CALCAMNT result = 0.0;
236 if(data.count() == 0){
241 result = sum()/data.count();
244 printf(
"mean: %Lg\n",result);
251CALCAMNT KStats::std(){
253 CALCAMNT result = 0.0;
255 if(data.count() == 0){
259 printf(
"set stats error\n");
265 result = SQRT(std_kernel());
268 printf (
"data.count %d\n",data.count());
271 result = result/data.count();
274 printf(
"std: %Lg\n",result);
281CALCAMNT KStats::sample_std(){
283 CALCAMNT result = 0.0;
285 if(data.count() < 2 ){
290 result = SQRT(std_kernel());
291 result = result/(data.count() - 1);
293 printf(
"sample std: %Lg\n",result);
315int MyList::compareItems(Item item_1, Item item_2){
320 item1 = (CALCAMNT*) item_1;
321 item2 = (CALCAMNT*) item_2;