1if (categoriesUsed)
2{
3	ChoiceList  (response,"Rate class Information Dislpay",1,NO_SKIP,
4				 "Don't Display","No rate class information is displayed",
5				 "Distribution Info","Only the inferred distributions will be shown",
6				 "Class Asignments 1","A string of class assignments for sites is displayed for each site from left to right.",
7				 "Class Asignments 2","A list of sites, grouped by rate class, is displayed.",
8				 "Complete","A table of partial likelihoods is spooled to a file, along with class assignments for sites.");
9
10
11	if (response>0)
12	{
13		if (response>3)
14		{
15			ConstructCategoryMatrix(res,lf,COMPLETE);
16			SetDialogPrompt ("Write marginal matrix info to:");
17			PRINT_DIGITS = 12;
18			fprintf (PROMPT_FOR_FILE,CLEAR_FILE,res);
19		}
20		else
21		{
22			ConstructCategoryMatrix(res,lf,SHORT);
23			cols = Columns(res);
24			GetInformation (distrInfo,c);
25			Dvar = Columns(distrInfo);
26			Evar = 0.0;
27			T = 0.0;
28			sampleVar = 0.0;
29			for (k=0; k<Dvar; k=k+1)
30			{
31				T = distrInfo[0][k]*distrInfo[1][k];
32				Evar = Evar+T;
33				sampleVar = T*distrInfo[0][k]+sampleVar;
34			}
35			sampleVar = sampleVar-Evar*Evar;
36
37			if (categoriesUsed>1)
38			{
39				fprintf (stdout, "\n", _rateDescriptors[0]);
40			}
41
42			fprintf  (stdout,"\n\n------------------------------------------------\n\nSample mean = ",Evar, " (sample variance = ",sampleVar,")\n");
43			for (k=0; k<Dvar; k=k+1)
44			{
45				fprintf (stdout,"\nRate[",Format(k,0,0),"]=",Format(distrInfo[0][k],12,8), " (weight=",
46								  Format(distrInfo[1][k],9,7),")");
47			}
48			if (categoriesUsed>1)
49			{
50				GetInformation (distrInfo2,d);
51				Dvar = Columns(distrInfo2);
52				Evar = 0.0;
53				T = 0.0;
54				sampleVar = 0.0;
55				for (k=0; k<Dvar; k=k+1)
56				{
57					T = R*distrInfo2[0][k]*distrInfo2[1][k];
58					Evar = Evar+T;
59					sampleVar = T*R*distrInfo2[0][k]+sampleVar;
60				}
61				sampleVar = sampleVar-Evar*Evar;
62
63				fprintf (stdout, "\n", _rateDescriptors[1]);
64				fprintf  (stdout,"\n\n------------------------------------------------\n\nSample mean = ",Evar, " (sample variance = ",sampleVar,")\n");
65				for (k=0; k<Dvar; k=k+1)
66				{
67					fprintf (stdout,"\nRate[",Format(k,0,0),"]=",Format(R*distrInfo2[0][k],12,8), " (weight=",
68									  Format(distrInfo2[1][k],9,7),")");
69				}
70			}
71			if (response == 2)
72			{
73				PRINT_DIGITS = 4;
74				if (categoriesUsed>1)
75				{
76					fprintf (stdout,"\n\nClass Assignments (div/mod ",Columns(distrInfo2)," for ",_rateDescriptors[0],"/",_rateDescriptors[1],") :\n\n");
77				}
78				else
79				{
80					fprintf (stdout,"\n\nClass Assignments:\n\n");
81				}
82				fprintf (stdout,"\n");
83				PRINT_DIGITS = 3;
84				fprintf (stdout,res[0][0]);
85				for (n=1;n<cols;n=n+1)
86				{
87					fprintf (stdout,"\t",res[0][n]);
88				}
89				_tableHeaders = {1,1};
90				_tableHeaders[0] = "Rate Class";
91
92				res = Transpose(res);
93
94				OpenWindow (CHARTWINDOW,{{"Rate class assignments by site."}
95						   {"_tableHeaders"},
96						   {"res"},
97						   {"Bar Chart"},
98						   {"Index"},
99						   {_tableHeaders[0]},
100						   {"Site Index"},
101						   {_tableHeaders[0]},
102						   {_tableHeaders[0]},
103						   {"0"}},
104						   "SCREEN_WIDTH-60;SCREEN_HEIGHT-50;30;50");
105			}
106			else
107			{
108				if (response == 3)
109				{
110					Dvar = Columns(distrInfo);
111					if (categoriesUsed>1)
112					{
113						Dvar2 = Columns (distrInfo2);
114						firstOrNot = {Dvar*Dvar2,1};
115						for (k=0; k<Dvar; k=k+1)
116						{
117							for (kk = 0; kk<Dvar2; kk=kk+1)
118							{
119								fprintf (stdout, "\n\nRate Class ",_rateDescriptors[0]," ",Format(k,0,0)," and ",
120																   _rateDescriptors[1]," ",Format(kk,0,0),"\n");
121
122								kk2 = k*Dvar2 + kk;
123								for (n=0; n<cols; n=n+1)
124								{
125									if (res[0][n]==kk2)
126									{
127										if (firstOrNot[kk2]==0)
128										{
129											firstOrNot[kk2] = 1;
130											fprintf (stdout, n);
131										}
132										else
133										{
134											fprintf (stdout, ",", n);
135										}
136									}
137								}
138							}
139						}
140					}
141					else
142					{
143						firstOrNot = {Dvar,1};
144						for (k=0; k<Dvar; k=k+1)
145						{
146							fprintf (stdout, "\n\nRate Class ",Format(k,0,0),"\n");
147							for (n=0; n<cols; n=n+1)
148							{
149								if (res[0][n]==k)
150								{
151									if (firstOrNot[k]==0)
152									{
153										firstOrNot[k] = 1;
154										fprintf (stdout, n);
155									}
156									else
157									{
158										fprintf (stdout, ",", n);
159									}
160								}
161							}
162						}
163					}
164					fprintf (stdout, "\n");
165				}
166			}
167		}
168	}
169}
170