aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2016-05-09 21:20:37 +0200
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2016-05-09 21:20:37 +0200
commitf0ba48b629c6eefbaea4cd7b9ee35ba2aa18d865 (patch)
tree8f7723612e0e60d39956a45e68a18455f9e1c45f
parentAdd err function to write to stderr (diff)
downloadgensvm-f0ba48b629c6eefbaea4cd7b9ee35ba2aa18d865.tar.gz
gensvm-f0ba48b629c6eefbaea4cd7b9ee35ba2aa18d865.zip
remove all unnecessary allocation checks
-rw-r--r--src/gensvm_init.c129
-rw-r--r--src/gensvm_kernel.c25
-rw-r--r--src/gensvm_pred.c15
3 files changed, 16 insertions, 153 deletions
diff --git a/src/gensvm_init.c b/src/gensvm_init.c
index 3b3f130..66cbc50 100644
--- a/src/gensvm_init.c
+++ b/src/gensvm_init.c
@@ -98,64 +98,15 @@ void gensvm_allocate_model(struct GenModel *model)
long K = model->K;
model->W = Calloc(double, m*(K-1));
- if (model->W == NULL) {
- fprintf(stderr, "Failed to allocate memory for W.\n");
- exit(1);
- }
-
model->t = Calloc(double, K-1);
- if (model->t == NULL) {
- fprintf(stderr, "Failed to allocate memory for t.\n");
- exit(1);
- }
-
model->V = Calloc(double, (m+1)*(K-1));
- if (model->V == NULL) {
- fprintf(stderr, "Failed to allocate memory for V.\n");
- exit(1);
- }
-
model->Vbar = Calloc(double, (m+1)*(K-1));
- if (model->Vbar == NULL) {
- fprintf(stderr, "Failed to allocate memory for Vbar.\n");
- exit(1);
- }
-
model->U = Calloc(double, K*(K-1));
- if (model->U == NULL) {
- fprintf(stderr, "Failed to allocate memory for U.\n");
- exit(1);
- }
-
model->UU = Calloc(double, n*K*(K-1));
- if (model->UU == NULL) {
- fprintf(stderr, "Failed to allocate memory for UU.\n");
- exit(1);
- }
-
model->Q = Calloc(double, n*K);
- if (model->Q == NULL) {
- fprintf(stderr, "Failed to allocate memory for Q.\n");
- exit(1);
- }
-
model->H = Calloc(double, n*K);
- if (model->H == NULL) {
- fprintf(stderr, "Failed to allocate memory for H.\n");
- exit(1);
- }
-
model->R = Calloc(double, n*K);
- if (model->R == NULL) {
- fprintf(stderr, "Failed to allocate memory for R.\n");
- exit(1);
- }
-
model->rho = Calloc(double, n);
- if (model->rho == NULL) {
- fprintf(stderr, "Failed to allocate memory for rho.\n");
- exit(1);
- }
}
/**
@@ -179,80 +130,32 @@ void gensvm_reallocate_model(struct GenModel *model, long n, long m)
if (model->n == n && model->m == m)
return;
if (model->n != n) {
- tmp = (double *) realloc(model->UU, n*K*(K-1)*sizeof(double));
- if (tmp) {
- Memset(tmp, double, n*K*(K-1));
- model->UU = tmp;
- } else {
- fprintf(stderr, "Failed to reallocate UU\n");
- exit(1);
- }
+ Realloc(model->UU, double, n*K*(K-1));
+ Memset(tmp, double, n*K*(K-1));
- tmp = (double *) realloc(model->Q, n*K*sizeof(double));
- if (tmp) {
- Memset(tmp, double, n*K);
- model->Q = tmp;
- } else {
- fprintf(stderr, "Failed to reallocate Q\n");
- exit(1);
- }
+ Realloc(model->Q, double, n*K);
+ Memset(model->Q, double, n*K);
- tmp = (double *) realloc(model->H, n*K*sizeof(double));
- if (tmp) {
- Memset(tmp, double, n*K);
- model->H = tmp;
- } else {
- fprintf(stderr, "Failed to reallocate H\n");
- exit(1);
- }
+ Realloc(model->H, double, n*K);
+ Memset(model->H, double, n*K);
- tmp = (double *) realloc(model->R, n*K*sizeof(double));
- if (tmp) {
- Memset(tmp, double, n*K);
- model->R = tmp;
- } else {
- fprintf(stderr, "Failed to reallocate R\n");
- exit(1);
- }
+ Realloc(model->R, double, n*K);
+ Memset(model->R, double, n*K);
- tmp = (double *) realloc(model->rho, n*sizeof(double));
- if (tmp) {
- Memset(tmp, double, n);
- model->rho = tmp;
- } else {
- fprintf(stderr, "Failed to reallocte rho\n");
- exit(1);
- }
+ Realloc(model->rho, double, n);
+ Memset(model->rho, double, n);
model->n = n;
}
if (model->m != m) {
- tmp = (double *) realloc(model->W, m*(K-1)*sizeof(double));
- if (tmp) {
- Memset(tmp, double, m*(K-1));
- model->W = tmp;
- } else {
- fprintf(stderr, "Failed to reallocate W\n");
- exit(1);
- }
+ Realloc(model->W, double, m*(K-1));
+ Memset(model->W, double, m*(K-1));
- tmp = (double *) realloc(model->V, (m+1)*(K-1)*sizeof(double));
- if (tmp) {
- Memset(tmp, double, (m+1)*(K-1));
- model->V = tmp;
- } else {
- fprintf(stderr, "Failed to reallocate V\n");
- exit(1);
- }
+ Realloc(model->V, double, (m+1)*(K-1));
+ Memset(model->V, double, (m+1)*(K-1));
- tmp = (double *) realloc(model->Vbar, (m+1)*(K-1)*sizeof(double));
- if (tmp) {
- Memset(tmp, double, (m+1)*(K-1));
- model->Vbar = tmp;
- } else {
- fprintf(stderr, "Failed to reallocate Vbar\n");
- exit(1);
- }
+ Realloc(model->Vbar, double, (m+1)*(K-1));
+ Memset(model->Vbar, double, (m+1)*(K-1));
model->m = m;
}
diff --git a/src/gensvm_kernel.c b/src/gensvm_kernel.c
index f53bcce..76413d1 100644
--- a/src/gensvm_kernel.c
+++ b/src/gensvm_kernel.c
@@ -43,11 +43,6 @@ void gensvm_kernel_preprocess(struct GenModel *model, struct GenData *data)
// build the kernel matrix
K = Calloc(double, n*n);
- if (K == NULL) {
- fprintf(stderr, "Failed to allocate memory for K in "
- "gensvm_kernel_preprocess.\n");
- exit(1);
- }
gensvm_make_kernel(model, data, K);
// generate the eigen decomposition
@@ -295,11 +290,6 @@ void gensvm_make_trainfactor(struct GenData *data, double *P, double *Sigma,
// allocate Z
data->Z = Calloc(double, n*(r+1));
- if (data->Z == NULL) {
- fprintf(stderr, "Failed to allocate memory for data->Z in "
- "gensvm_make_trainfactor.\n");
- exit(1);
- }
// Write data->Z = [1 M] = [1 P*Sigma]
for (i=0; i<n; i++) {
@@ -328,17 +318,7 @@ void gensvm_make_testfactor(struct GenData *testdata,
r = traindata->r;
N = Calloc(double, n2*r);
- if (N == NULL) {
- fprintf(stderr, "Failed to allocate memory for N in "
- "gensvm_make_testfactor.\n");
- exit(1);
- }
M = Calloc(double, n1*r);
- if (M == NULL) {
- fprintf(stderr, "Failed to allocate memory for M in "
- "gensvm_make_testfactor.\n");
- exit(1);
- }
// copy M from traindata->Z because we need it in dgemm without column
// of 1's.
@@ -373,11 +353,6 @@ void gensvm_make_testfactor(struct GenData *testdata,
// write N to Z with a column of ones
testdata->Z = Calloc(double, n2*(r+1));
- if (testdata->Z == NULL) {
- fprintf(stderr, "Failed to allocate memory for testdata->Z in "
- "gensvm_make_testfactor.\n");
- exit(1);
- }
for (i=0; i<n2; i++) {
for (j=0; j<r; j++) {
matrix_set(testdata->Z, r+1, i, j+1,
diff --git a/src/gensvm_pred.c b/src/gensvm_pred.c
index 7835bf6..25a4cc5 100644
--- a/src/gensvm_pred.c
+++ b/src/gensvm_pred.c
@@ -46,23 +46,8 @@ void gensvm_predict_labels(struct GenData *testdata, struct GenModel *model,
// allocate necessary memory
S = Calloc(double, K-1);
- if (S == NULL) {
- fprintf(stderr, "Failed to allocate memory for S in "
- "gensvm_predict_labels.\n");
- exit(1);
- }
ZV = Calloc(double, n*(K-1));
- if (ZV == NULL) {
- fprintf(stderr, "Failed to allocate memory for ZV in "
- "gensvm_predict_labels.\n");
- exit(1);
- }
U = Calloc(double, K*(K-1));
- if (U == NULL) {
- fprintf(stderr, "Failed to allocate memory for U in "
- "gensvm_predict_labels.\n");
- exit(1);
- }
// Generate the simplex matrix
gensvm_simplex_gen(K, U);