diff options
| author | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2014-07-31 21:36:53 +0200 |
|---|---|---|
| committer | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2014-07-31 21:36:53 +0200 |
| commit | a0e00c7b6f77aab92d08772ca1a343d4ee6195b2 (patch) | |
| tree | c13f16c3beb5164600bfd4378752c753a322ec76 /src/msvmmaj_train.c | |
| parent | remove fixed seed leftover from merge (diff) | |
| download | gensvm-a0e00c7b6f77aab92d08772ca1a343d4ee6195b2.tar.gz gensvm-a0e00c7b6f77aab92d08772ca1a343d4ee6195b2.zip | |
unroll some matrix functions for safety with macros
Diffstat (limited to 'src/msvmmaj_train.c')
| -rw-r--r-- | src/msvmmaj_train.c | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/src/msvmmaj_train.c b/src/msvmmaj_train.c index 71a24df..09b00ee 100644 --- a/src/msvmmaj_train.c +++ b/src/msvmmaj_train.c @@ -46,7 +46,7 @@ void msvmmaj_optimize(struct MajModel *model, struct MajData *data) { long i, j, it = 0; - double L, Lbar; + double L, Lbar, value; long n = model->n; long m = model->m; @@ -105,10 +105,12 @@ void msvmmaj_optimize(struct MajModel *model, struct MajData *data) for (i=0; i<K-1; i++) model->t[i] = matrix_get(model->V, K-1, 0, i); - for (i=1; i<m+1; i++) - for (j=0; j<K-1; j++) - matrix_set(model->W, K-1, i-1, j, - matrix_get(model->V, K-1, i, j)); + for (i=1; i<m+1; i++) { + for (j=0; j<K-1; j++) { + value = matrix_get(model->V, K-1, i, j); + matrix_set(model->W, K-1, i-1, j, value); + } + } free(B); free(ZV); free(ZAZ); @@ -523,18 +525,10 @@ void msvmmaj_get_update(struct MajModel *model, struct MajData *data, double *B, for (i=0; i<m+1; i++) { for (j=0; j<K-1; j++) { - matrix_set( - model->Vbar, - K-1, - i, - j, - matrix_get(model->V, K-1, i, j)); - matrix_set( - model->V, - K-1, - i, - j, - matrix_get(ZAZV, K-1, i, j)); + value = matrix_get(model->V, K-1, i, j); + matrix_set(model->Vbar, K-1, i, j, value); + value = matrix_get(ZAZV, K-1, i, j); + matrix_set(model->V, K-1, i, j, value); } } } |
