GenSVM
gensvm_kernel.h
Go to the documentation of this file.
1 
32 #ifndef GENSVM_KERNEL_H
33 #define GENSVM_KERNEL_H
34 
35 // includes
36 #include "gensvm_base.h"
37 
38 // function declarations
40  struct GenData *data);
41 void gensvm_kernel_preprocess(struct GenModel *model, struct GenData *data);
42 void gensvm_kernel_postprocess(struct GenModel *model,
43  struct GenData *traindata, struct GenData *testdata);
44 void gensvm_kernel_compute(struct GenModel *model, struct GenData *data,
45  double *K);
46 long gensvm_kernel_eigendecomp(double *K, long n, double cutoff,
47  double **P_ret, double **Sigma_ret);
48 double *gensvm_kernel_cross(struct GenModel *model, struct GenData *data_train,
49  struct GenData *data_test);
50 void gensvm_kernel_trainfactor(struct GenData *data, double *P, double *Sigma,
51  long r);
52 void gensvm_kernel_testfactor(struct GenData *testdata,
53  struct GenData *traindata, double *K2);
54 double gensvm_kernel_dot_rbf(double *x1, double *x2, long n, double gamma);
55 double gensvm_kernel_dot_poly(double *x1, double *x2, long n, double gamma,
56  double coef, double degree);
57 double gensvm_kernel_dot_sigmoid(double *x1, double *x2, long n, double gamma,
58  double coef);
59 int dsyevx(char JOBZ, char RANGE, char UPLO, int N, double *A, int LDA,
60  double VL, double VU, int IL, int IU, double ABSTOL,
61  int *M, double *W, double *Z, int LDZ, double *WORK, int LWORK,
62  int *IWORK, int *IFAIL);
63 double dlamch(char CMACH);
64 #endif
void gensvm_kernel_copy_kernelparam_to_data(struct GenModel *model, struct GenData *data)
Copy the kernelparameters from GenModel to GenData.
Definition: gensvm_kernel.c:46
double gensvm_kernel_dot_rbf(double *x1, double *x2, long n, double gamma)
Compute the RBF kernel between two vectors.
void gensvm_kernel_compute(struct GenModel *model, struct GenData *data, double *K)
Compute the kernel matrix.
int dsyevx(char JOBZ, char RANGE, char UPLO, int N, double *A, int LDA, double VL, double VU, int IL, int IU, double ABSTOL, int *M, double *W, double *Z, int LDZ, double *WORK, int LWORK, int *IWORK, int *IFAIL)
Compute the eigenvalues and optionally the eigenvectors of a symmetric matrix.
A structure to represent the data.
Definition: gensvm_base.h:57
A structure to represent a single GenSVM model.
Definition: gensvm_base.h:92
double * gensvm_kernel_cross(struct GenModel *model, struct GenData *data_train, struct GenData *data_test)
Compute the kernel crossproduct between two datasets.
long gensvm_kernel_eigendecomp(double *K, long n, double cutoff, double **P_ret, double **Sigma_ret)
Find the (reduced) eigendecomposition of a kernel matrix.
void gensvm_kernel_testfactor(struct GenData *testdata, struct GenData *traindata, double *K2)
Calculate the matrix product for the testfactor.
double dlamch(char CMACH)
Determine double precision machine parameters.
void gensvm_kernel_trainfactor(struct GenData *data, double *P, double *Sigma, long r)
Compute the training factor as part of kernel preprocessing.
double gensvm_kernel_dot_sigmoid(double *x1, double *x2, long n, double gamma, double coef)
Compute the sigmoid kernel between two vectors.
void gensvm_kernel_postprocess(struct GenModel *model, struct GenData *traindata, struct GenData *testdata)
Compute the kernel postprocessing factor.
Header file for gensvm_base.c.
double gensvm_kernel_dot_poly(double *x1, double *x2, long n, double gamma, double coef, double degree)
Compute the polynomial kernel between two vectors.
void gensvm_kernel_preprocess(struct GenModel *model, struct GenData *data)
Do the preprocessing steps needed to perform kernel GenSVM.
Definition: gensvm_kernel.c:75