亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pr_loqo.c

?? 支持向量分類算法在linux操作系統下的是實現
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * File:        pr_loqo.c * Purpose:     solves quadratic programming problem for pattern recognition *              for support vectors * * Author:      Alex J. Smola * Created:     10/14/97 * Updated:     11/08/97 * Updated:     13/08/98 (removed exit(1) as it crashes svm lite when the margin *                        in a not sufficiently conservative manner) * *  * Copyright (c) 1997  GMD Berlin - All rights reserved * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE of GMD Berlin * The copyright notice above does not evidence any * actual or intended publication of this work. * * Unauthorized commercial use of this software is not allowed */#include <math.h>#include <time.h>#include <stdlib.h>#include <stdio.h>#include "pr_loqo.h"#define	max(A, B)	((A) > (B) ? (A) : (B))#define	min(A, B)	((A) < (B) ? (A) : (B))#define sqr(A)          ((A) * (A))#define	ABS(A)  	((A) > 0 ? (A) : (-(A)))#define PREDICTOR 1#define CORRECTOR 2/*****************************************************************  replace this by any other function that will exit gracefully  in a larger system  ***************************************************************/void nrerror(char error_text[]){  printf("ERROR: terminating optimizer - %s\n", error_text);  /* exit(1); */}/*****************************************************************   taken from numerical recipes and modified to accept pointers   moreover numerical recipes code seems to be buggy (at least the   ones on the web)   cholesky solver and backsubstitution   leaves upper right triangle intact (rows first order)   ***************************************************************/int choldc(double a[], int n, double p[]){  void nrerror(char error_text[]);  int i, j, k;  double sum;  for (i = 0; i < n; i++){    for (j = i; j < n; j++) {      sum=a[n*i + j];      for (k=i-1; k>=0; k--) sum -= a[n*i + k]*a[n*j + k];      if (i == j) {	if (sum <= 0.0) {	  /*	  nrerror("choldc failed, matrix not positive definite"); */	  printf("choldc failed, matrix not positive definite"); fflush(stdout);	  sum = 0.0;	  return -1;	}	p[i]=sqrt(sum);      } else a[n*j + i] = sum/p[i];    }  }  return 0;}/* void choldc(double a[], int n, double p[]) *//* { *//*   void nrerror(char error_text[]); *//*   int i, j, k; *//*   double sum; *//*   double shift_amount; *//*   double rs; *//*   int shifted; *//*   shift_amount=0.0; *//*   shifted = 1; *//*   while(shifted){ *//*     shifted = 0; *//*     for (i = 0; i < n; i++){ *//*       if(shifted) break; *//*       for (j = i; j < n; j++) { *//* 	sum=a[n*i + j]; *//* 	for (k=i-1; k>=0; k--) sum -= a[n*i + k]*a[n*j + k]; *//* 	if (i == j) { *//* 	  if (sum <= 0.0) { *//* 	    rs=0.0; *//* 	    for(k=i;k<n;++k) rs += fabs(a[n*i + k]); *//* 	    for(k=0;k<i;++k) rs += fabs(a[n*k + i]); *//* 	    shift_amount = max(rs,1.1*shift_amount); *//* 	    printf("using shift_amount = %g\n", shift_amount); fflush(stdout); *//* 	    for(k=0;k<n;++k) *//* 	      a[n*k + k] = a[n*k + k]+shift_amount; *//* 	    shifted = 1; *//* 	    break; *//* 	  } *//* 	  p[i]=sqrt(sum); *//* 	} else a[n*j + i] = sum/p[i]; *//*       } *//*     } *//*   } *//* } */void cholsb(double a[], int n, double p[], double b[], double x[]){  int i, k;  double sum;  for (i=0; i<n; i++) {    sum=b[i];    for (k=i-1; k>=0; k--) sum -= a[n*i + k]*x[k];    x[i]=sum/p[i];  }  for (i=n-1; i>=0; i--) {    sum=x[i];    for (k=i+1; k<n; k++) sum -= a[n*k + i]*x[k];    x[i]=sum/p[i];  }}/*****************************************************************  sometimes we only need the forward or backward pass of the  backsubstitution, hence we provide these two routines separately   ***************************************************************/void chol_forward(double a[], int n, double p[], double b[], double x[]){  int i, k;  double sum;  for (i=0; i<n; i++) {    sum=b[i];    for (k=i-1; k>=0; k--) sum -= a[n*i + k]*x[k];    x[i]=sum/p[i];  }}void chol_backward(double a[], int n, double p[], double b[], double x[]){  int i, k;  double sum;  for (i=n-1; i>=0; i--) {    sum=b[i];    for (k=i+1; k<n; k++) sum -= a[n*k + i]*x[k];    x[i]=sum/p[i];  }}/*****************************************************************  solves the system | -H_x A' | |x_x| = |c_x|                    |  A   H_y| |x_y|   |c_y|  with H_x (and H_y) positive (semidefinite) matrices  and n, m the respective sizes of H_x and H_y  for variables see pg. 48 of notebook or do the calculations on a  sheet of paper again  predictor solves the whole thing, corrector assues that H_x didn't  change and relies on the results of the predictor. therefore do  _not_ modify workspace  if you want to speed tune anything in the code here's the right  place to do so: about 95% of the time is being spent in  here. something like an iterative refinement would be nice,  especially when switching from double to single precision. if you  have a fast parallel cholesky use it instead of the numrec  implementations.  side effects: changes H_y (but this is just the unit matrix or zero anyway  in our case)  ***************************************************************/int solve_reduced(int n, int m, double h_x[], double h_y[], 		  double a[], double x_x[], double x_y[],		  double c_x[], double c_y[],		  double workspace[], int step){  int i,j,k;  int ierr = 0;  double *p_x;  double *p_y;  double *t_a;  double *t_c;  double *t_y;  p_x = workspace;		/* together n + m + n*m + n + m = n*(m+2)+2*m */  p_y = p_x + n;  t_a = p_y + m;  t_c = t_a + n*m;  t_y = t_c + n;  if (step == PREDICTOR) {    ierr = choldc(h_x, n, p_x);	/* do cholesky decomposition */    if(ierr)      return ierr;    for (i=0; i<m; i++)         /* forward pass for A' */      chol_forward(h_x, n, p_x, a+i*n, t_a+i*n);				    for (i=0; i<m; i++)         /* compute (h_y + a h_x^-1A') */      for (j=i; j<m; j++)	for (k=0; k<n; k++) 	  h_y[m*i + j] += t_a[n*j + k] * t_a[n*i + k];				    ierr = choldc(h_y, m, p_y);	/* and cholesky decomposition */    if(ierr)      return ierr;  }    chol_forward(h_x, n, p_x, c_x, t_c);				/* forward pass for c */  for (i=0; i<m; i++) {		/* and solve for x_y */    t_y[i] = c_y[i];    for (j=0; j<n; j++)      t_y[i] += t_a[i*n + j] * t_c[j];  }  cholsb(h_y, m, p_y, t_y, x_y);  for (i=0; i<n; i++) {		/* finally solve for x_x */    t_c[i] = -t_c[i];    for (j=0; j<m; j++)      t_c[i] += t_a[j*n + i] * x_y[j];  }  chol_backward(h_x, n, p_x, t_c, x_x);  return ierr;}/*****************************************************************  matrix vector multiplication (symmetric matrix but only one triangle  given). computes m*x = y  no need to tune it as it's only of O(n^2) but cholesky is of  O(n^3). so don't waste your time _here_ although it isn't very  elegant.   ***************************************************************/void matrix_vector(int n, double m[], double x[], double y[]){  int i, j;  for (i=0; i<n; i++) {    y[i] = m[(n+1) * i] * x[i];    for (j=0; j<i; j++)      y[i] += m[i + n*j] * x[j];    for (j=i+1; j<n; j++)       y[i] += m[n*i + j] * x[j];   }}/*****************************************************************  call only this routine; this is the only one you're interested in  for doing quadratical optimization  the restart feature exists but it may not be of much use due to the  fact that an initial setting, although close but not very close the  the actual solution will result in very good starting diagnostics  (primal and dual feasibility and small infeasibility gap) but incur  later stalling of the optimizer afterwards as we have to enforce  positivity of the slacks.  ***************************************************************/int pr_loqo(int n, int m, double c[], double h_x[], double a[], double b[],	    double l[], double u[], double primal[], double dual[], 	    double dist[], int verb, double sigfig_max, int counter_max, 	    double margin, double bound, int restart) {  /* the knobs to be tuned ... */  /* double margin = -0.95;	   we will go up to 95% of the				   distance between old variables and zero */  /* double bound = 10;		   preset value for the start. small				   values give good initial				   feasibility but may result in slow				   convergence afterwards: we're too				   close to zero */  int ierr = 0;  /* to be allocated */  double *workspace;  double *diag_h_x;  double *h_y;  double *c_x;  double *c_y;  double *h_dot_x;  double *rho;  double *nu;  double *tau;  double *sigma;  double *gamma_z;  double *gamma_s;    double *hat_nu;  double *hat_tau;  double *delta_x;  double *delta_y;  double *delta_s;  double *delta_z;  double *delta_g;  double *delta_t;  double *d;  /* from the header - pointers into primal and dual */  double *x;  double *y;  double *g;  double *z;  double *s;  double *t;    /* auxiliary variables */  double b_plus_1;  double c_plus_1;  double x_h_x;  double primal_inf;  double dual_inf;  double sigfig;  double primal_obj, dual_obj;/*   double primal_obj = *p_obj; *//*   double dual_obj = *d_obj; */  double mu;  double alfa;  int counter = 0;  int status = STILL_RUNNING;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕欧美激情一区| 久久99九九99精品| jvid福利写真一区二区三区| 精品久久人人做人人爽| 激情综合色综合久久综合| 日韩美女主播在线视频一区二区三区| 日韩有码一区二区三区| 成人久久视频在线观看| 欧美性做爰猛烈叫床潮| 亚洲国产精品久久久久秋霞影院| 日韩欧美www| 韩国在线一区二区| 亚洲国产高清在线观看视频| 岛国一区二区在线观看| 亚洲婷婷综合色高清在线| 一本色道**综合亚洲精品蜜桃冫| 亚洲国产精品久久人人爱蜜臀 | 亚洲最快最全在线视频| 色av一区二区| 日本不卡一区二区三区高清视频| 欧美一级黄色录像| 国产xxx精品视频大全| 亚洲色欲色欲www| 欧美丰满少妇xxxxx高潮对白| 蜜桃精品视频在线| 国产精品天美传媒| 在线看国产日韩| 久久福利视频一区二区| 国产精品网曝门| 欧美日韩小视频| 国产盗摄精品一区二区三区在线| 亚洲欧美一区二区不卡| 欧美大片一区二区三区| 成人三级伦理片| 午夜精品免费在线观看| 久久久久久黄色| 欧美图片一区二区三区| 国产精品456| 亚洲一级二级三级| 久久久99精品免费观看| 欧美三级日韩三级国产三级| 国产乱子伦一区二区三区国色天香| 自拍偷拍国产精品| 亚洲欧洲韩国日本视频 | 在线亚洲精品福利网址导航| 久久国产日韩欧美精品| 亚洲精品精品亚洲| 亚洲精品日产精品乱码不卡| 欧美一区二区三区成人| 一本色道久久综合亚洲aⅴ蜜桃| 麻豆一区二区三| 亚洲一区二区三区四区不卡| 国产无人区一区二区三区| 欧美日韩不卡一区二区| 成人app下载| 国产一区二三区| 日韩精品成人一区二区在线| 亚洲日本在线a| 国产午夜亚洲精品不卡| 日韩欧美一级在线播放| 欧美日韩国产乱码电影| 91麻豆高清视频| 成人性生交大片免费看在线播放| 久久99精品视频| 日韩av不卡在线观看| 亚洲一区国产视频| 欧美日韩在线三级| 一区二区三区在线免费视频| 日韩女同互慰一区二区| 欧美唯美清纯偷拍| 99视频在线精品| 国产aⅴ综合色| 国产最新精品免费| 久久精品国产亚洲5555| 日本亚洲视频在线| 丝袜a∨在线一区二区三区不卡| 亚洲精品日韩一| 亚洲视频小说图片| 亚洲免费高清视频在线| 亚洲精选在线视频| 亚洲欧美电影一区二区| 中文字幕一区二区三区色视频| 日本精品免费观看高清观看| 国产一区 二区| 日韩电影免费一区| 亚洲国产精品天堂| 亚洲一区二区三区不卡国产欧美| 一区二区在线看| 一区二区三区四区蜜桃| 亚洲在线观看免费视频| 亚洲一区二区av电影| 亚洲bt欧美bt精品| 日本三级亚洲精品| 美女一区二区在线观看| 精一区二区三区| 国产精品一区二区黑丝| 成人影视亚洲图片在线| 色综合久久久网| 欧美综合天天夜夜久久| 欧美日韩精品一区二区三区蜜桃| 91精品综合久久久久久| 欧美电影免费观看完整版| 亚洲精品在线观看网站| 国产精品全国免费观看高清 | 日韩三级视频在线观看| 日韩欧美电影一区| 欧美va在线播放| 亚洲国产高清aⅴ视频| 一区精品在线播放| 午夜欧美电影在线观看| 极品销魂美女一区二区三区| jlzzjlzz亚洲日本少妇| 91麻豆精东视频| 日韩一区二区三区高清免费看看| 欧美精品一二三| 欧美日韩夫妻久久| 久久亚洲一级片| 国产精品大尺度| 亚洲国产一区在线观看| 蜜臀av性久久久久蜜臀av麻豆| 国产91在线观看丝袜| 色先锋久久av资源部| 欧美一级二级三级蜜桃| 国产精品久久久久久久久快鸭| 亚洲自拍偷拍九九九| 国产一区二区福利视频| 色综合久久久久久久久久久| 欧美精品久久天天躁| 国产丝袜欧美中文另类| 亚洲成人在线观看视频| 国产黄色成人av| 欧美精品粉嫩高潮一区二区| 亚洲国产精品成人综合色在线婷婷| 亚洲综合色区另类av| 国产成人自拍在线| 欧美一卡二卡三卡| 亚洲欧美日韩精品久久久久| 精品一区在线看| 欧美日韩午夜在线| 最新欧美精品一区二区三区| 精品一区二区三区久久久| 欧亚一区二区三区| 中文字幕一区二区三区在线观看| 久久97超碰国产精品超碰| 日本韩国视频一区二区| 中文乱码免费一区二区| 狠狠色综合播放一区二区| 欧美日韩极品在线观看一区| 自拍偷自拍亚洲精品播放| 国产成人免费在线| 日韩免费观看高清完整版| 午夜欧美在线一二页| 91麻豆swag| 国产精品萝li| 成人免费视频app| 国产亚洲精品免费| 久久国产精品色| 91精品国产欧美一区二区| 亚洲一线二线三线久久久| 91麻豆精东视频| 亚洲欧美综合在线精品| 国产激情偷乱视频一区二区三区 | 99r国产精品| 中文字幕精品一区二区精品绿巨人| 国产一区二区福利视频| 精品免费视频.| 久久精品国产99久久6| 日韩一区二区精品葵司在线| 首页国产欧美久久| 欧美精品久久天天躁| 亚洲va韩国va欧美va精品| 欧美少妇bbb| 天堂一区二区在线| 欧美一级生活片| 欧美aaa在线| 精品国产区一区| 国产精品一区二区三区网站| 久久夜色精品一区| 粉嫩av一区二区三区粉嫩 | av男人天堂一区| 亚洲色欲色欲www在线观看| 色哟哟一区二区在线观看| 一区二区三区在线影院| 欧美日韩一区国产| 日韩精品久久理论片| 欧美成人一区二区三区片免费| 激情六月婷婷久久| 国产精品五月天| 色呦呦一区二区三区| 午夜不卡av在线| 久久亚洲精华国产精华液| 国产电影精品久久禁18| 亚洲色图都市小说| 欧美巨大另类极品videosbest| 久久99精品网久久| 国产精品无人区| 欧美日韩成人综合天天影院| 久久www免费人成看片高清| 国产欧美中文在线| 91国偷自产一区二区开放时间|