aboutsummaryrefslogtreecommitdiff
path: root/src/gensvm_optimize.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gensvm_optimize.c')
-rw-r--r--src/gensvm_optimize.c43
1 files changed, 1 insertions, 42 deletions
diff --git a/src/gensvm_optimize.c b/src/gensvm_optimize.c
index e83fa47..300df40 100644
--- a/src/gensvm_optimize.c
+++ b/src/gensvm_optimize.c
@@ -257,10 +257,7 @@ void gensvm_calculate_errors(struct GenModel *model, struct GenData *data,
long n = model->n;
long K = model->K;
- if (data->spZ == NULL)
- gensvm_calculate_ZV_dense(model, data, ZV);
- else
- gensvm_calculate_ZV_sparse(model, data, ZV);
+ gensvm_calculate_ZV(model, data, ZV);
for (i=0; i<n; i++) {
for (j=0; j<K; j++) {
@@ -273,41 +270,3 @@ void gensvm_calculate_errors(struct GenModel *model, struct GenData *data,
}
}
-void gensvm_calculate_ZV_sparse(struct GenModel *model,
- struct GenData *data, double *ZV)
-{
- long i, j, jj, jj_start, jj_end, K,
- n_row = data->spZ->n_row;
- double z_ij;
-
- K = model->K;
-
- int *Zia = data->spZ->ia;
- int *Zja = data->spZ->ja;
- double *vals = data->spZ->values;
-
- for (i=0; i<n_row; i++) {
- jj_start = Zia[i];
- jj_end = Zia[i+1];
-
- for (jj=jj_start; jj<jj_end; jj++) {
- j = Zja[jj];
- z_ij = vals[jj];
-
- cblas_daxpy(K-1, z_ij, &model->V[j*(K-1)], 1,
- &ZV[i*(K-1)], 1);
- }
- }
-}
-
-void gensvm_calculate_ZV_dense(struct GenModel *model,
- struct GenData *data, double *ZV)
-{
- long n = model->n;
- long m = model->m;
- long K = model->K;
-
- cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, n, K-1, m+1,
- 1.0, data->Z, m+1, model->V, K-1, 0, ZV, K-1);
-}
-