1 #ifndef _Discriminant_h_
2 #define _Discriminant_h_
3 /* Discriminant.h
4  *
5  * Copyright (C) 1993-2019 David Weenink
6  *
7  * This code is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or (at
10  * your option) any later version.
11  *
12  * This code is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this work. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #include "Eigen.h"
22 #include "Graphics.h"
23 #include "SSCP.h"
24 
25 #include "Discriminant_def.h"
26 
27 autoDiscriminant Discriminant_create (integer numberOfGroups, integer numberOfEigenvalues, integer dimension);
28 
29 integer Discriminant_groupLabelToIndex (Discriminant me, conststring32 label);
30 
31 void Discriminant_setAprioriProbability (Discriminant me, integer group, double p);
32 
33 integer Discriminant_getNumberOfGroups (Discriminant me);
34 
35 integer Discriminant_getNumberOfObservations (Discriminant me, integer group);
36 
37 integer Discriminant_getNumberOfFunctions (Discriminant me);
38 
39 double Discriminant_getWilksLambda (Discriminant me, integer numberOfDimensions);
40 
41 void Discriminant_getPartialDiscriminationProbability (Discriminant me,
42 	integer numberOfDimensions, double *out_probability, double *out_chisq, double *out_df);
43 
44 double Discriminant_getConcentrationEllipseArea (Discriminant me, integer group,
45 	double scale, bool confidence, bool discriminantDirections, integer d1, integer d2);
46 
47 double Discriminant_getLnDeterminant_group (Discriminant me, integer group);
48 
49 double Discriminant_getLnDeterminant_total (Discriminant me);
50 
51 void Discriminant_drawTerritorialMap (Discriminant me, Graphics g, bool discriminantDirections,
52 	integer d1, integer d2, double xmin, double xmax, double ymin, double ymax, double fontSize,
53 	bool poolCovarianceMatrices, bool garnish);
54 
55 void Discriminant_drawConcentrationEllipses (Discriminant me, Graphics g,
56 	double scale, bool confidence, conststring32 label, bool discriminantDirections,
57 	integer d1, integer d2, double xmin, double xmax, double ymin, double ymax,
58 	double fontSize, bool garnish);
59 
60 autoTableOfReal Discriminant_extractCoefficients (Discriminant me, integer choice);
61 
62 autoTableOfReal Discriminant_extractGroupCentroids (Discriminant me);
63 
64 autoTableOfReal Discriminant_extractGroupStandardDeviations (Discriminant me);
65 
66 autoSSCP Discriminant_extractPooledWithinGroupsSSCP (Discriminant me);
67 
68 autoSSCP Discriminant_extractWithinGroupSSCP (Discriminant me, integer index);
69 
70 autoSSCP Discriminant_extractBetweenGroupsSSCP (Discriminant me);
71 
72 autoStrings Discriminant_extractGroupLabels (Discriminant me);
73 
74 void Discriminant_setGroupLabels (Discriminant me, Strings thee);
75 
76 #endif /* _Discriminant_h_ */
77