|
Data Structures |
struct | UKR_Model |
struct | UKR_G_Struct |
Typedefs |
typedef double(* | Ukr_bp_dists_sparse )(int, const double *, double *, double *, int *, int *, int, const int *, int) |
typedef double(* | Ukr_bp_dists_full )(int, const double *, double *, double *, int, const int *, int) |
Enumerations |
enum | UKR_Kernel {
UKR_KERNEL_UNKNOWN = 0,
UKR_KERNEL_GAUSSIAN = 1,
UKR_KERNEL_SPARSE = 100,
UKR_KERNEL_QUARTIC = 102,
UKR_KERNEL_TRIWEIGHT = 103
} |
enum | UKR_Loss {
UKR_LOSS_UNKNOWN = -1,
UKR_LOSS_L2 = 0,
UKR_LOSS_HUBER = 1,
UKR_LOSS_EPS2 = 2,
UKR_LOSS_EPS = 3
} |
Functions |
Ukr_bp_dists_sparse | ukr_get_kernel_sparse (UKR_Kernel kernel) |
Ukr_bp_dists_full | ukr_get_kernel_full (UKR_Kernel kernel) |
double | ukr_f (double *f, const double *x, UKR_Model model) |
double | ukr_fJ (double *f, double *J, const double *x, UKR_Model model) |
double | ukr_bp_dists_gaussian (int M, const double *dist, double *b, double *p, int numExclude, const int *exclude, int normalize) |
double | ukr_bp_dists_quartic (int M, const double *dist, double *b, double *p, int *ir, int *nz, int numExclude, const int *exclude, int normalize) |
double | ukr_bp_dists_triweight (int M, const double *dist, double *b, double *p, int *ir, int *nz, int numExclude, const int *exclude, int normalize) |
double | ukr_loss_function (int col, double *yr, const double *y, UKR_Model model) |
UKR_Kernel | ukr_kernel_by_name (const char *name) |
UKR_Loss | ukr_loss_by_name (const char *name) |
double | ukr_errgrad (double *grad, UKR_Model model, int forceCV) |
double | ukr_errgrad_scale (double *grad, const double *s, UKR_Model model, int forceCV) |
int | ukr_dens_penalty (double *pen, double *grad, UKR_Model model) |
int | ukr_densvar_penalty (double *pen, double *grad, UKR_Model model) |
int | ukr_aux_dens_penalty_sparse (double *pen, double *grad, UKR_Model model) |
int | ukr_aux_dens_penalty_full (double *pen, double *grad, UKR_Model model) |
int | ukr_aux_densvar_penalty_sparse (double *pen, double *grad, UKR_Model model) |
int | ukr_aux_densvar_penalty_full (double *pen, double *grad, UKR_Model model) |
double | ukr_aux_errgrad_sparse (double *grad, UKR_Model model, int forceCV) |
double | ukr_aux_errgrad_full (double *grad, UKR_Model model, int forceCV) |
double | ukr_aux_errgrad_scale_sparse (double *grad, const double *s, UKR_Model model, int forceCV) |
double | ukr_aux_errgrad_scale_full (double *grad, const double *s, UKR_Model model, int forceCV) |
double | ukr_aux_M (int col, double *M, double *B, double *tmp_d, UKR_Model model) |
double | ukr_aux_M_sp (int col, double *M, const double *B, const int *ir, int nz, double *tmp_d, UKR_Model model) |
void | ukr_aux_R (double *R, const double *B, const double *P, const double *M, int n) |
void | ukr_aux_addXv_sp (double *u, const double *X, const double *v, const int *ir, int nz, int q) |
void | ukr_aux_add_xvT_sp (double *U, const double *x, const double *v, const int *ir, int nz, int q) |
void | ukr_aux_addXv (double *u, const double *X, const double *v, int q, int N) |
void | ukr_aux_add_xvT (double *U, const double *x, const double *v, int q, int N) |
void | ukr_aux_subX_diag (double *grad, const double *X, const double *sumR, int q, int N) |
void | ukr_aux_scaleX (double *sX, double *XX, const double *X, const double *s, int q, int N) |
void | ukr_aux_Jb_sparse (double *J, const double *b, const double *p, const double *x, const int *ir, int nnz, UKR_Model model) |
void | ukr_aux_Jb_full (double *J, const double *b, const double *p, const double *x, UKR_Model model) |
void | ukr_aux_f_sparse (double *f, const double *b, const int *ir, int nz, UKR_Model model) |
void | ukr_aux_f_full (double *f, const double *b, UKR_Model model) |
void | ukr_aux_Jf_sparse (double *Jf, const double *b, const double *p, const double *x, const int *ir, int nnz, UKR_Model model) |
void | ukr_aux_Jf_full (double *Jf, const double *b, const double *p, const double *x, UKR_Model model) |
int | ukr_aux_alloc_g_struct (UKR_Model model, UKR_G_Struct *gs) |
void | ukr_aux_free_g_struct (UKR_G_Struct gs) |
double | ukr_g_congrad (double *g, const double *x, UKR_Model model, UKR_G_Struct gs) |
double | ukr_g_errgradhess (double *g, double *H, const double *x, UKR_Model model, UKR_G_Struct ukr_gs, int bp_ready) |
void | ukr_aux_normalize_gs (UKR_Model model, UKR_G_Struct ukr_gs) |
This C library provides some low level functions of the UKR algorithm. It mainly servers as the basis for the MEX-replacements of sume functions within the Matlab UKR toolbox, but it can be used without Matlab.
For easy inter-operatability, the data format of full and sparse vectors and matrices used in this library is that of Matlab (or Fortran). That is, vectors are just arrays of doubles. Matrices are also 1-D arrays of doubles, with the elements stored in column-major order. A 2x2 matrix