Tabulate the collected results of a single region. Calculates and tabulates also the statistics.
609 {
610 char *cptr, tmp[1024];
613
614
615
616 if(fp==NULL || coll==NULL || coll->
voiNr<0 || collNr<1)
return(1);
617 if(coll->
voiNr<1)
return(0);
618
619
621 data=(
double*)malloc(coll->
voiNr*
sizeof(
double));
622 for(pi=0; pi<coll->
parNr; pi++) {
623
625
627 &resstat[1][pi]);
628
629 resMean(data, coll->
voiNr, &resstat[3][pi], &resstat[4][pi]);
630 }
631 free(data);
632 }
633
634
635 if(collNr>1) {
636 fprintf(fp, "\n<br />\n");
637 }
638
639
641
642 while((cptr=strpbrk(tmp, " ."))!=NULL) *cptr='_';
643 fprintf(fp, "\n<a id=\"%s\"></a>\n", tmp);
644
645
646 fprintf(fp, "<table>\n");
647 fprintf(fp, " <thead>\n");
648
649
650 fprintf(fp,
" <tr><th colspan=\"%d\">", 3+coll->
parNr);
652 fprintf(fp, "</th></tr>\n");
653
654
655 fprintf(fp, " <tr>\n <td>Nr</td><td>Study</td><td>Date</td>\n");
656
657 for(pi=0; pi<coll->
parNr; pi++)
658 fprintf(fp,
" <td>%s</td>\n", coll->
parname[pi]);
659 fprintf(fp, " </tr>\n");
660 fprintf(fp, " </thead>\n");
661
662
663 for(pi=0; pi<coll->
parNr; pi++)
665
666
667 fprintf(fp, " <tbody>\n");
668 for(si=0; si<coll->
voiNr; si++) {
669 if(si%2) strcpy(tmp, "evenstudy"); else strcpy(tmp, "oddstudy");
670 fprintf(fp, " <tr class=\"%s\">\n", tmp);
671 fprintf(fp, " <td>%-3d</td>\n", si+1);
672 fprintf(fp,
" <td>%s</td>\n", coll->
voi[si].
name);
674 for(pi=0; pi<coll->
parNr; pi++) {
676 switch(partype[pi]) {
677 case 0: sprintf(tmp,
"%.0f", coll->
voi[si].
parameter[pi]);
break;
678 case 1: sprintf(tmp,
"%.*f", n, coll->
voi[si].
parameter[pi]);
break;
679 case 2:
680 default: sprintf(tmp,
"%.*e", n, coll->
voi[si].
parameter[pi]);
break;
681 }
682 fprintf(fp, " <td>%s</td>\n", tmp);
683 }
684 fprintf(fp, " </tr>\n");
685 }
686 fprintf(fp, " </tbody>\n");
687
688
690 fprintf(fp, "</table>\n");
691 return(0);
692 }
693
694
695 fprintf(fp, " <tbody>\n");
696
697 fprintf(fp, " <tr class=\"oddsum\">\n");
698 fprintf(fp, " <td colspan=\"3\">Min</td>\n");
699 for(pi=0; pi<coll->
parNr; pi++) {
700 if(resstat[0][pi]>=0) n=4; else n=3;
701 switch(partype[pi]) {
702 case 0: sprintf(tmp, "%.0f", resstat[0][pi]); break;
703 case 1: sprintf(tmp, "%.*f", n, resstat[0][pi]); break;
704 case 2:
705 default: sprintf(tmp, "%.*e", n, resstat[0][pi]); break;
706 }
707 fprintf(fp, " <td>%s</td>\n", tmp);
708 }
709 fprintf(fp, " </tr>\n");
710
711 fprintf(fp, " <tr class=\"evensum\">\n");
712 fprintf(fp, " <td colspan=\"3\">Max</td>\n");
713 for(pi=0; pi<coll->
parNr; pi++) {
714 if(resstat[1][pi]>=0) n=4; else n=3;
715 switch(partype[pi]) {
716 case 0: sprintf(tmp, "%.0f", resstat[1][pi]); break;
717 case 1: sprintf(tmp, "%.*f", n, resstat[1][pi]); break;
718 case 2:
719 default: sprintf(tmp, "%.*e", n, resstat[1][pi]); break;
720 }
721 fprintf(fp, " <td>%s</td>\n", tmp);
722 }
723 fprintf(fp, " </tr>\n");
724
725 fprintf(fp, " <tr class=\"oddsum\">\n");
726 fprintf(fp, " <td colspan=\"3\">Median</td>\n");
727 for(pi=0; pi<coll->
parNr; pi++) {
728 if(resstat[2][pi]>=0) n=6; else n=5;
729 switch(partype[pi]) {
730 case 0: sprintf(tmp, "%.2f", resstat[2][pi]); break;
731 case 1: sprintf(tmp, "%.*f", n, resstat[2][pi]); break;
732 case 2:
733 default: sprintf(tmp, "%.*e", n, resstat[2][pi]); break;
734 }
735 fprintf(fp, " <td>%s</td>\n", tmp);
736 }
737 fprintf(fp, " </tr>\n");
738
739 fprintf(fp, " <tr class=\"evensum\">\n");
740 fprintf(fp, " <td colspan=\"2\">Mean</td>\n");
741 fprintf(fp,
" <td>n=%d</td>\n", coll->
voiNr);
742 for(pi=0; pi<coll->
parNr; pi++) {
743 if(resstat[3][pi]>=0) n=6; else n=5;
744 switch(partype[pi]) {
745 case 0: sprintf(tmp, "%.2f", resstat[3][pi]); break;
746 case 1: sprintf(tmp, "%.*f", n, resstat[3][pi]); break;
747 case 2:
748 default: sprintf(tmp, "%.*e", n, resstat[3][pi]); break;
749 }
750 fprintf(fp, " <td>%s</td>\n", tmp);
751 }
752 fprintf(fp, " </tr>\n");
753
754 fprintf(fp, " <tr class=\"oddsum\">\n");
755 fprintf(fp, " <td colspan=\"3\">SD</td>\n");
756 for(pi=0; pi<coll->
parNr; pi++) {
757 if(resstat[4][pi]>=0) n=6; else n=5;
758 switch(partype[pi]) {
759 case 0: sprintf(tmp, "%.2f", resstat[4][pi]); break;
760 case 1: sprintf(tmp, "%.*f", n, resstat[4][pi]); break;
761 case 2:
762 default: sprintf(tmp, "%.*e", n, resstat[4][pi]); break;
763 }
764 fprintf(fp, " <td>%s</td>\n", tmp);
765 }
766 fprintf(fp, " </tr>\n");
767 fprintf(fp, " </tbody>\n");
768
769
770 fprintf(fp, "</table>\n");
771
772 return(0);
773}
int resMean(double *data, int nr, double *mean, double *sd)
int resParameterPrintType(RES *res, int parIndex)
int resMedian(double *data, int nr, double *median, double *min, double *max)
char parname[MAX_RESPARAMS][MAX_RESPARNAME_LEN+1]
char datafile[FILENAME_MAX]
double parameter[MAX_RESPARAMS]
char hemisphere[MAX_REGIONSUBNAME_LEN+1]
char name[MAX_REGIONNAME_LEN+1]
char voiname[MAX_REGIONSUBNAME_LEN+1]