aboutsummaryrefslogtreecommitdiff
path: root/src/gensvm_copy.c
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2016-05-16 18:47:09 +0200
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2016-05-16 18:47:09 +0200
commit044dc5a93c33d7aa4c9c98a626890c16446a56fc (patch)
tree23cc17a595d36a35ad9cb50e3ab18c2956b5f65c /src/gensvm_copy.c
parentMove includes to header (diff)
downloadgensvm-044dc5a93c33d7aa4c9c98a626890c16446a56fc.tar.gz
gensvm-044dc5a93c33d7aa4c9c98a626890c16446a56fc.zip
major refactor of the code
Diffstat (limited to 'src/gensvm_copy.c')
-rw-r--r--src/gensvm_copy.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/gensvm_copy.c b/src/gensvm_copy.c
new file mode 100644
index 0000000..501e405
--- /dev/null
+++ b/src/gensvm_copy.c
@@ -0,0 +1,49 @@
+/**
+ * @file gensvm_copy.c
+ * @author Gertjan van den Burg
+ * @date May, 2016
+ * @brief Function for copying a GenModel instance
+ *
+ */
+
+#include "gensvm_copy.h"
+
+/**
+ * @brief Copy model parameters between two GenModel structs
+ *
+ * @details
+ * The parameters copied are GenModel::weight_idx, GenModel::epsilon,
+ * GenModel::p, GenModel::kappa, and GenModel::lambda.
+ *
+ * @param[in] from GenModel to copy parameters from
+ * @param[in,out] to GenModel to copy parameters to
+ */
+void gensvm_copy_model(struct GenModel *from, struct GenModel *to)
+{
+ to->weight_idx = from->weight_idx;
+ to->epsilon = from->epsilon;
+ to->p = from->p;
+ to->kappa = from->kappa;
+ to->lambda = from->lambda;
+
+ to->kerneltype = from->kerneltype;
+ switch (to->kerneltype) {
+ case K_LINEAR:
+ break;
+ case K_POLY:
+ to->kernelparam = Malloc(double, 3);
+ to->kernelparam[0] = from->kernelparam[0];
+ to->kernelparam[1] = from->kernelparam[1];
+ to->kernelparam[2] = from->kernelparam[2];
+ break;
+ case K_RBF:
+ to->kernelparam = Malloc(double, 1);
+ to->kernelparam[0] = from->kernelparam[0];
+ break;
+ case K_SIGMOID:
+ to->kernelparam = Malloc(double, 2);
+ to->kernelparam[0] = from->kernelparam[0];
+ to->kernelparam[1] = from->kernelparam[1];
+ break;
+ }
+}