CCA CCA_create (long numberOfCoefficients, long ny, long nx) { try { autoCCA me = Thing_new (CCA); my numberOfCoefficients = numberOfCoefficients; my yLabels = Thing_new (Strings); my xLabels = Thing_new (Strings); my y = Eigen_create (numberOfCoefficients, ny); my x = Eigen_create (numberOfCoefficients, nx); return me.transfer(); } catch (MelderError) { Melder_throw (U"CCA not created."); } }
class_methods_end CCA CCA_create (long numberOfCoefficients, long ny, long nx) { CCA me = Thing_new (CCA); if (me == NULL) return NULL; my numberOfCoefficients = numberOfCoefficients; my yLabels = Thing_new (Strings); my xLabels = Thing_new (Strings); if ((my xLabels == NULL) || (my yLabels == NULL) || ((my y = Eigen_create (numberOfCoefficients, ny)) == NULL) || ((my x = Eigen_create (numberOfCoefficients, nx)) == NULL)) forget (me); return me; }
autoEigen PCA_to_Eigen (PCA me) { try { autoEigen thee = Eigen_create (my numberOfEigenvalues, my dimension); NUMmatrix_copyElements <double>(my eigenvectors, thy eigenvectors, 1, my numberOfEigenvalues, 1, my dimension); NUMvector_copyElements<double>(my eigenvalues, thy eigenvalues, 1, my numberOfEigenvalues); return thee; } catch (MelderError) { Melder_throw (me, U": no Eigen created."); } }
autoDiscriminant Discriminant_create (long numberOfGroups, long numberOfEigenvalues, long dimension) { try { autoDiscriminant me = Thing_new (Discriminant); my eigen = Eigen_create (numberOfEigenvalues, dimension); my numberOfGroups = numberOfGroups; my groups = SSCPList_create (); my total = SSCP_create (dimension); my aprioriProbabilities = NUMvector<double> (1, numberOfGroups); my costs = NUMmatrix<double> (1, numberOfGroups, 1, numberOfGroups); return me; } catch (MelderError) { Melder_throw (U"Discriminant not created."); } }