From 369fd7c981bc468e9002be6f4813e08664413a81 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Fri, 30 Sep 2016 20:22:18 +0200 Subject: Remove category matrix from implementation It's a remnant from the Matlab implementation, where it actually makes sense to use. Here it becomes a significant memory burden for large datasets, and doesn't provide any speedup --- include/gensvm_base.h | 3 --- include/gensvm_optimize.h | 8 ++++---- 2 files changed, 4 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/gensvm_base.h b/include/gensvm_base.h index ded0149..390a9b6 100644 --- a/include/gensvm_base.h +++ b/include/gensvm_base.h @@ -87,9 +87,6 @@ struct GenModel { ///< error matrix double *H; ///< Huber weighted error matrix - double *R; - ///< 0-1 auixiliary matrix, this matrix is n x K, with for row i a 0 on - ///< column y[i]-1, and 1 everywhere else. double *rho; ///< vector of instance weights double training_error; diff --git a/include/gensvm_optimize.h b/include/gensvm_optimize.h index bef9669..3fd9607 100644 --- a/include/gensvm_optimize.h +++ b/include/gensvm_optimize.h @@ -22,8 +22,10 @@ void gensvm_optimize(struct GenModel *model, struct GenData *data); double gensvm_get_loss(struct GenModel *model, struct GenData *data, double *ZV); -double gensvm_calculate_omega(struct GenModel *model, long i); -bool gensvm_majorize_is_simple(struct GenModel *model, long i); +double gensvm_calculate_omega(struct GenModel *model, struct GenData *data, + long i); +bool gensvm_majorize_is_simple(struct GenModel *model, struct GenData *data, + long i); void gensvm_calculate_ab_non_simple(struct GenModel *model, long i, long j, double *a, double *b_aq); void gensvm_calculate_ab_simple(struct GenModel *model, long i, long j, @@ -34,8 +36,6 @@ double gensvm_get_Avalue_update_B(struct GenModel *model, long i, double *B); void gensvm_get_update(struct GenModel *model, struct GenData *data, double *B, double *ZAZ, double *ZAZV, double *ZAZVT); -void gensvm_category_matrix(struct GenModel *model, struct GenData *data); -void gensvm_simplex_diff(struct GenModel *model, struct GenData *dataset); void gensvm_calculate_errors(struct GenModel *model, struct GenData *data, double *ZV); void gensvm_calculate_huber(struct GenModel *model); -- cgit v1.2.3