autoPCA PCA_create (long numberOfComponents, long dimension) { try { autoPCA me = Thing_new (PCA); Eigen_init (me.get(), numberOfComponents, dimension); my labels = NUMvector<char32 *> (1, dimension); my centroid = NUMvector<double> (1, dimension); return me; } catch (MelderError) { Melder_throw (U"PCA not created"); } }
Discriminant Discriminant_create (long numberOfGroups, long numberOfEigenvalues, long dimension) { try { autoDiscriminant me = Thing_new (Discriminant); my numberOfGroups = numberOfGroups; Eigen_init (me.peek(), numberOfEigenvalues, dimension); my groups = SSCPs_create (); my total = SSCP_create (dimension); my aprioriProbabilities = NUMvector<double> (1, numberOfGroups); my costs = NUMmatrix<double> (1, numberOfGroups, 1, numberOfGroups); return me.transfer(); } catch (MelderError) { Melder_throw (U"Discriminant not created."); } }