void CExactInferenceMethod::update_all() { if (m_labels) m_label_vector = ((CRegressionLabels*) m_labels)->get_labels().clone(); if (m_features && m_features->has_property(FP_DOT) && m_features->get_num_vectors()) m_feature_matrix = ((CDotFeatures*)m_features)->get_computed_dot_feature_matrix(); else if (m_features && m_features->get_feature_class() == C_COMBINED) { CDotFeatures* feat = (CDotFeatures*)((CCombinedFeatures*)m_features)-> get_first_feature_obj(); if (feat->get_num_vectors()) m_feature_matrix = feat->get_computed_dot_feature_matrix(); SG_UNREF(feat); } update_data_means(); if (m_kernel) update_train_kernel(); if (m_ktrtr.num_cols*m_ktrtr.num_rows) { update_chol(); update_alpha(); } }
void CInferenceMethod::set_latent_features(CFeatures* feat) { SG_REF(feat); SG_UNREF(m_latent_features); m_latent_features=feat; if (m_latent_features && m_latent_features->has_property(FP_DOT) && m_latent_features->get_num_vectors()) m_latent_matrix = ((CDotFeatures*)m_latent_features)->get_computed_dot_feature_matrix(); else if (m_latent_features && m_latent_features->get_feature_class() == C_COMBINED) { CDotFeatures* subfeat = (CDotFeatures*)((CCombinedFeatures*)m_latent_features)-> get_first_feature_obj(); if (m_latent_features->get_num_vectors()) m_latent_matrix = subfeat->get_computed_dot_feature_matrix(); SG_UNREF(subfeat); } update_data_means(); update_train_kernel(); update_chol(); update_alpha(); }