aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/GenSVMgrid.c2
-rw-r--r--src/GenSVMtraintest.c2
-rw-r--r--src/gensvm_init.c7
-rw-r--r--src/gensvm_io.c25
-rw-r--r--src/gensvm_kernel.c13
-rw-r--r--src/gensvm_memory.c18
-rw-r--r--src/gensvm_optimize.c11
-rw-r--r--src/gensvm_strutil.c7
8 files changed, 54 insertions, 31 deletions
diff --git a/src/GenSVMgrid.c b/src/GenSVMgrid.c
index a6c749e..e2cb161 100644
--- a/src/GenSVMgrid.c
+++ b/src/GenSVMgrid.c
@@ -43,7 +43,7 @@ void exit_with_help()
printf("-h | -help : print this help.\n");
printf("-q : quiet mode (no output)\n");
- exit(0);
+ exit(EXIT_FAILURE);
}
/**
diff --git a/src/GenSVMtraintest.c b/src/GenSVMtraintest.c
index 73c0ce9..4d99c04 100644
--- a/src/GenSVMtraintest.c
+++ b/src/GenSVMtraintest.c
@@ -50,7 +50,7 @@ void exit_with_help()
"group)\n");
printf("-t type: kerneltype (0=LINEAR, 1=POLY, 2=RBF, 3=SIGMOID)\n");
- exit(0);
+ exit(EXIT_FAILURE);
}
int main(int argc, char **argv)
diff --git a/src/gensvm_init.c b/src/gensvm_init.c
index 28f34ba..938fafd 100644
--- a/src/gensvm_init.c
+++ b/src/gensvm_init.c
@@ -14,6 +14,7 @@
*/
#include "gensvm_init.h"
+#include "gensvm_print.h"
inline double rnd() { return (double) rand()/0x7FFFFFFF; }
@@ -106,7 +107,9 @@ void gensvm_initialize_weights(struct GenData *data, struct GenModel *model)
for (i=0; i<n; i++)
model->rho[i] = ((double) n)/((double) (groups[data->y[i]-1]*K));
} else {
- fprintf(stderr, "Unknown weight specification.\n");
- exit(1);
+ // LCOV_EXCL_START
+ err("[GenSVM Error]: Unknown weight specification.\n");
+ exit(EXIT_FAILURE);
+ // LCOV_EXCL_STOP
}
}
diff --git a/src/gensvm_io.c b/src/gensvm_io.c
index 696f46f..97ea73b 100644
--- a/src/gensvm_io.c
+++ b/src/gensvm_io.c
@@ -12,6 +12,7 @@
*/
#include "gensvm_io.h"
+#include "gensvm_print.h"
/**
* @brief Read data from file
@@ -43,9 +44,11 @@ void gensvm_read_data(struct GenData *dataset, char *data_file)
char buf[MAX_LINE_LENGTH];
if ((fid = fopen(data_file, "r")) == NULL) {
- fprintf(stderr, "\nERROR: datafile %s could not be opened.\n",
+ // LCOV_EXCL_START
+ err("[GenSVM Error]: Datafile %s could not be opened.\n",
data_file);
- exit(0);
+ exit(EXIT_FAILURE);
+ // LCOV_EXCL_STOP
}
// Read data dimensions
@@ -63,9 +66,12 @@ void gensvm_read_data(struct GenData *dataset, char *data_file)
// Check if there is a label at the end of the line
if (fgets(buf, MAX_LINE_LENGTH, fid) == NULL) {
- fprintf(stderr, "ERROR: No label found on first line.\n");
- exit(1);
+ // LCOV_EXCL_START
+ err("[GenSVM Error]: No label found on first line.\n");
+ exit(EXIT_FAILURE);
+ // LCOV_EXCL_STOP
}
+
if (sscanf(buf, "%lf", &value) > 0) {
dataset->y = Malloc(long, n);
dataset->y[0] = value;
@@ -99,12 +105,19 @@ void gensvm_read_data(struct GenData *dataset, char *data_file)
"value is: %ld\n",
data_file, min_y);
exit(0);
+ // LCOV_EXCL_START
+ err("[GenSVM Error]: Class labels should start from 1 and "
+ "have no gaps. Please reformat your data.\n");
+ exit(EXIT_FAILURE);
+ // LCOV_EXCL_STOP
}
if (nr < n * m) {
- fprintf(stderr, "ERROR: not enough data found in %s\n",
+ // LCOV_EXCL_START
+ err("[GenSVM Error]: not enough data found in %s\n",
data_file);
- exit(0);
+ exit(EXIT_FAILURE);
+ // LCOV_EXCL_STOP
}
// Set the column of ones
diff --git a/src/gensvm_kernel.c b/src/gensvm_kernel.c
index 9dc5e29..7ca58da 100644
--- a/src/gensvm_kernel.c
+++ b/src/gensvm_kernel.c
@@ -12,6 +12,7 @@
*/
#include "gensvm_kernel.h"
+#include "gensvm_print.h"
/**
* @brief Do the preprocessing steps needed to perform kernel GenSVM
@@ -114,9 +115,9 @@ void gensvm_make_kernel(struct GenModel *model, struct GenData *data,
value = gensvm_dot_sigmoid(x1, x2,
model->kernelparam, data->m);
else {
- fprintf(stderr, "Unknown kernel type in "
+ err("[GenSVM Error]: Unknown kernel type in "
"gensvm_make_kernel\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
matrix_set(K, n, i, j, value);
matrix_set(K, n, j, i, value);
@@ -159,8 +160,8 @@ long gensvm_make_eigen(double *K, long n, double **P, double **Sigma)
tempSigma, tempP, n, WORK, LWORK, IWORK, IFAIL);
if (status != 0) {
- fprintf(stderr, "Nonzero exit status from dsyevx. Exiting...");
- exit(1);
+ err("[GenSVM Error]: Nonzero exit status from dsyevx.\n");
+ exit(EXIT_FAILURE);
}
// Select the desired number of eigenvalues, depending on their size.
@@ -230,9 +231,9 @@ void gensvm_make_crosskernel(struct GenModel *model,
model->kernelparam,
m);
else {
- fprintf(stderr, "Unknown kernel type in "
+ err("[GenSVM Error]: Unknown kernel type in "
"gensvm_make_crosskernel\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
matrix_set((*K2), n_train, i, j, value);
}
diff --git a/src/gensvm_memory.c b/src/gensvm_memory.c
index 63c8965..624a4a6 100644
--- a/src/gensvm_memory.c
+++ b/src/gensvm_memory.c
@@ -33,9 +33,11 @@ void *mycalloc(const char *file, int line, unsigned long size,
void *ptr = calloc(size, typesize);
if (!ptr) {
- fprintf(stderr, "Couldn't allocate memory: %lu bytes (%s:%d)\n",
- size, file, line);
+ // LCOV_EXCL_START
+ fprintf(stderr, "[GenSVM Error]: Couldn't allocate memory: "
+ "%lu bytes (%s:%d)\n", size, file, line);
exit(EXIT_FAILURE);
+ // LCOV_EXCL_STOP
}
return ptr;
}
@@ -62,9 +64,11 @@ void *mymalloc(const char *file, int line, unsigned long size)
{
void *ptr = malloc(size);
if (!ptr) {
- fprintf(stderr, "Couldn't allocate memory: %lu bytes (%s:%d)\n",
- size, file, line);
+ // LCOV_EXCL_START
+ fprintf(stderr, "[GenSVM Error]: Couldn't allocate memory: "
+ "%lu bytes (%s:%d)\n", size, file, line);
exit(EXIT_FAILURE);
+ // LCOV_EXCL_STOP
}
return ptr;
}
@@ -92,9 +96,11 @@ void *myrealloc(const char *file, int line, unsigned long size, void *var)
{
void *ptr = realloc(var, size);
if (!ptr) {
- fprintf(stderr, "Couldn't reallocate memory: %lu bytes (%s:%d)\n",
- size, file, line);
+ // LCOV_EXCL_START
+ fprintf(stderr, "[GenSVM Error]: Couldn't reallocate memory: "
+ "%lu bytes (%s:%d)\n", size, file, line);
exit(EXIT_FAILURE);
+ // LCOV_EXCL_STOP
}
return ptr;
}
diff --git a/src/gensvm_optimize.c b/src/gensvm_optimize.c
index 464815d..9332995 100644
--- a/src/gensvm_optimize.c
+++ b/src/gensvm_optimize.c
@@ -85,10 +85,10 @@ void gensvm_optimize(struct GenModel *model, struct GenData *data)
it++;
}
if (L > Lbar)
- fprintf(stderr, "[WARNING]: Negative step occurred in "
+ err("[GenSVM Warning]: Negative step occurred in "
"majorization.\n");
if (it >= MAX_ITER)
- fprintf(stderr, "[WARNING]: maximum number of iterations "
+ err("[GenSVM Warning]: maximum number of iterations "
"reached.\n");
note("Optimization finished, iter = %li, loss = %15.16f, "
@@ -463,9 +463,8 @@ void gensvm_get_update(struct GenModel *model, struct GenData *data, double *B,
// This step should not be necessary, as the matrix
// ZAZ is positive semi-definite by definition. It
// is included for safety.
- fprintf(stderr, "GenSVM warning: Received nonzero status from "
- "dposv: %i\n",
- status);
+ err("[GenSVM Warning]: Received nonzero status from "
+ "dposv: %i\n", status);
int *IPIV = malloc((m+1)*sizeof(int));
double *WORK = malloc(1*sizeof(double));
status = dsysv(
@@ -492,7 +491,7 @@ void gensvm_get_update(struct GenModel *model, struct GenData *data, double *B,
WORK,
sizeof(WORK)/sizeof(double));
if (status != 0)
- fprintf(stderr, "GenSVM warning: Received nonzero "
+ err("[GenSVM Warning]: Received nonzero "
"status from dsysv: %i\n", status);
free(WORK);
free(IPIV);
diff --git a/src/gensvm_strutil.c b/src/gensvm_strutil.c
index 4b8b37b..9762e52 100644
--- a/src/gensvm_strutil.c
+++ b/src/gensvm_strutil.c
@@ -10,6 +10,7 @@
*/
#include "gensvm_strutil.h"
+#include "gensvm_print.h"
/**
* @brief Check if a string starts with a prefix
@@ -65,7 +66,7 @@ char *get_line(FILE *fid, char *filename, char *buffer)
{
char *retval = fgets(buffer, MAX_LINE_LENGTH, fid);
if (retval == NULL) {
- fprintf(stderr, "Error reading file %s\n", filename);
+ err("[GenSVM Error]: Error reading from file %s\n", filename);
}
return retval;
}
@@ -91,7 +92,7 @@ double get_fmt_double(FILE *fid, char *filename, const char *fmt)
get_line(fid, filename, buffer);
retval = sscanf(buffer, fmt, &value);
if (retval == 0)
- fprintf(stderr, "No double read from file.\n");
+ err("[GenSVM Error]: No double read from file.\n");
return value;
}
@@ -112,7 +113,7 @@ long get_fmt_long(FILE *fid, char *filename, const char *fmt)
get_line(fid, filename, buffer);
retval = sscanf(buffer, fmt, &value);
if (retval == 0)
- fprintf(stderr, "No long read from file.\n");
+ err("[GenSVM Error]: No long read from file.\n");
return value;
}