⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kcache.h

📁 an approximate SVM solver, useful for very large dataset.
💻 H
字号:
/*********************************************************************** *  *  LUSH Lisp Universal Shell *    Copyright (C) 2002 Leon Bottou, Yann Le Cun, AT&T Corp, NECI. *  Includes parts of TL3: *    Copyright (C) 1987-1999 Leon Bottou and Neuristique. *  Includes selected parts of SN3.2: *    Copyright (C) 1991-2001 AT&T Corp. *  *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. *  *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. *  *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA *  ***********************************************************************//*********************************************************************** * $Id: kcache.h,v 1.4 2005/11/16 00:10:01 agbs Exp $ **********************************************************************/#ifndef KCACHE_H#define KCACHE_H#ifdef __cplusplus__extern "C" { #if 0}#endif#endif/* ------------------------------------- *//* GENERIC KERNEL TYPE *//* --- lasvm_kernel_t   This is the type for user defined symmetric kernel functions.   It returns the Gram matrix element at position <i>,<j>.    Argument <closure> represents arbitrary additional information.*/#ifndef LASVM_KERNEL_T_DEFINED#define LASVM_KERNEL_T_DEFINEDtypedef double (*lasvm_kernel_t)(int i, int j, void* closure);#endif/* ------------------------------------- *//* CACHE FOR KERNEL VALUES *//* --- lasvm_kcache_t   This is the opaque data structure for a kernel cache.*/typedef struct lasvm_kcache_s lasvm_kcache_t;/* --- lasvm_kcache_create   Returns a cache object for kernel <kernelfun>.   The cache handles a Gram matrix of size <n>x<n> at most.   Argument <closure> is passed to the kernel function <kernelfun>. */lasvm_kcache_t* lasvm_kcache_create(lasvm_kernel_t kernelfunc, void *closure);/* --- lasvm_kcache_destroy   Deallocates a kernel cache object.*/void lasvm_kcache_destroy(lasvm_kcache_t *self);/* --- lasvm_kcache_set_maximum_size   Sets the maximum memory size used by the cache.   Argument <entries> indicates the maximum cache memory in bytes   The default size is 256Mb.*/void lasvm_kcache_set_maximum_size(lasvm_kcache_t *self, long entries);/* --- lasvm_kcache_get_maximum_size   Returns the maximum cache memory. */long lasvm_kcache_get_maximum_size(lasvm_kcache_t *self);/* --- lasvm_kcache_get_current_size   Returns the currently used cache memory.   This can slighly exceed the value specified by    <lasvm_kcache_set_maximum_size>. */long lasvm_kcache_get_current_size(lasvm_kcache_t *self);/* --- lasvm_kcache_query   Returns the possibly cached value of the Gram matrix element (<i>,<j>).   This function will not modify the cache geometry. */double lasvm_kcache_query(lasvm_kcache_t *self, int i, int j);/* --- lasvm_kcache_query_row   Returns the <len> first elements of row <i> of the Gram matrix.   The cache user can modify the order of the row elements   using the lasvm_kcache_swap() functions.  Functions lasvm_kcache_i2r()    and lasvm_kcache_r2i() convert from example index to row position    and vice-versa.*/float *lasvm_kcache_query_row(lasvm_kcache_t *self, int i, int len);/* --- lasvm_kcache_status_row   Returns the number of cached entries for row i.*/int lasvm_kcache_status_row(lasvm_kcache_t *self, int i);/* --- lasvm_kcache_discard_row   Indicates that we wont need row i in the near future.*/void lasvm_kcache_discard_row(lasvm_kcache_t *self, int i);/* --- lasvm_kcache_i2r   --- lasvm_kcache_r2i   Return an array of integer of length at least <n> containing   the conversion table from example index to row position and vice-versa. */int *lasvm_kcache_i2r(lasvm_kcache_t *self, int n);int *lasvm_kcache_r2i(lasvm_kcache_t *self, int n);/* --- lasvm_kcache_swap_rr   --- lasvm_kcache_swap_ii   --- lasvm_kcache_swap_ri   Swaps examples in the row ordering table.   Examples can be specified by indicating their row position (<r1>, <r2>)   or by indicating the example number (<i1>, <i2>).*/void lasvm_kcache_swap_rr(lasvm_kcache_t *self, int r1, int r2);void lasvm_kcache_swap_ii(lasvm_kcache_t *self, int i1, int i2);void lasvm_kcache_swap_ri(lasvm_kcache_t *self, int r1, int i2);#ifdef __cplusplus__}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -