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

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

?? gnpplib.c

?? support vector machine的一個matlab工具箱
?? C
?? 第 1 頁 / 共 2 頁
字號:
       dim, tmax, tolabs, tolrel, th, &alpha, &t, &aHa11, &aHa22, &History );
-------------------------------------------------------------- */
int gnpp_imdm(const void* (*get_col)(long,long),
            double *diag_H,
            double *vector_c,
            double *vector_y,
            long dim, 
            long tmax,
            double tolabs,
            double tolrel,
            double th,
            double *alpha,
            long  *ptr_t, 
            double *ptr_aHa11,
            double *ptr_aHa22,
            double **ptr_History,
            long verb)
{
  double LB;
  double UB;
  double aHa11, aHa12, aHa22, ac1, ac2;
  double tmp;
  double Huu, Huv, Hvv;
  double min_beta1, max_beta1, min_beta2, max_beta2, beta;
  double lambda;
  double delta1, delta2;
  double improv, max_improv;
  double *History;
  double *Ha1;
  double *Ha2;
  double *tmp_ptr;
  double *col_u, *col_v;
  double *col_v1, *col_v2;
  long u1, u2;
  long v1, v2;
  long i;
  long t;
  long History_size;
  int exitflag;
  int which_case;

  /* ------------------------------------------------------------ */
  /* Initialization                                               */
  /* ------------------------------------------------------------ */

  Ha1 = mxCalloc(dim, sizeof(double));
  if( Ha1 == NULL ) mexErrMsgTxt("Not enough memory.");
  Ha2 = mxCalloc(dim, sizeof(double));
  if( Ha2 == NULL ) mexErrMsgTxt("Not enough memory.");

  History_size = (tmax < HISTORY_BUF ) ? tmax+1 : HISTORY_BUF;
  History = mxCalloc(History_size*2,sizeof(double));
  if( History == NULL ) mexErrMsgTxt("Not enough memory.");

  /* inx1 = firts of find( y ==1 ), inx2 = firts of find( y ==2 ) */
  v1 = -1; v2 = -1; i = 0;
  while( (v1 == -1 || v2 == -1) && i < dim ) {
    if( v1 == -1 && vector_y[i] == 1 ) { v1 = i; }
    if( v2 == -1 && vector_y[i] == 2 ) { v2 = i; } 
    i++;
  }

  col_v1 = (double*)get_col(v1,-1);
  col_v2 = (double*)get_col(v2,v1);
  
  aHa12 = col_v1[v2];
  aHa11 = diag_H[v1];
  aHa22 = diag_H[v2];
  ac1 = vector_c[v1];
  ac2 = vector_c[v2];

  min_beta1 = PLUS_INF; min_beta2 = PLUS_INF;
  for( i = 0; i < dim; i++ ) 
  {
    alpha[i] = 0;
    Ha1[i] = col_v1[i];
    Ha2[i] = col_v2[i];

    beta = Ha1[i] + Ha2[i] + vector_c[i];

    if( vector_y[i] == 1 && min_beta1 > beta ) {
      u1 = i;
      min_beta1 = beta;
    }

    if( vector_y[i] == 2 && min_beta2 > beta ) {
      u2 = i;
      min_beta2 = beta;
    }
  }

  alpha[v1] = 1;
  alpha[v2] = 1;

  UB = 0.5*(aHa11 + 2*aHa12 + aHa22) + ac1 + ac2;
  LB = min_beta1 + min_beta2 - 0.5*(aHa11 + 2*aHa12 + aHa22);

  delta1 = Ha1[v1] + Ha2[v1] + vector_c[v1] - min_beta1;
  delta2 = Ha1[v2] + Ha2[v2] + vector_c[v2] - min_beta2;

  t = 0;
  History[INDEX(0,0,2)] = LB;
  History[INDEX(1,0,2)] = UB;

  if( verb ) {
    mexPrintf("Init: UB=%f, LB=%f, UB-LB=%f, (UB-LB)/|UB|=%f \n",
      UB, LB, UB-LB,(UB-LB)/UB);
  }  

  if( delta1 > delta2 ) 
  {
     which_case = 1;
     col_u = (double*)get_col(u1,v1);
     col_v = col_v1;
  }
  else
  {
     which_case = 2;
     col_u = (double*)get_col(u2,v2);
     col_v = col_v2;
  }

  /* Stopping conditions */
  if( UB-LB <= tolabs ) exitflag = 1;
  else if(UB-LB <= ABS(UB)*tolrel ) exitflag = 2;
  else if(LB > th) exitflag = 3;
  else exitflag = -1;

  /* ------------------------------------------------------------ */
  /* Main optimization loop                                       */
  /* ------------------------------------------------------------ */

  while( exitflag == -1 ) 
  {
    t++;     

    if( which_case == 1 )
    {
      Huu = diag_H[u1];
      Hvv = diag_H[v1];
      Huv = col_u[v1];

      lambda = delta1/(alpha[v1]*(Huu - 2*Huv + Hvv ));
      lambda = MIN(1,lambda);

      tmp = lambda*alpha[v1];

      aHa11 = aHa11 + 2*tmp*(Ha1[u1]-Ha1[v1])+tmp*tmp*( Huu - 2*Huv + Hvv );
      aHa12 = aHa12 + tmp*(Ha2[u1]-Ha2[v1]);
      ac1 = ac1 + tmp*(vector_c[u1]-vector_c[v1]);

      alpha[u1] = alpha[u1] + tmp;
      alpha[v1] = alpha[v1] - tmp;

      min_beta1 = PLUS_INF; min_beta2 = PLUS_INF;
      max_beta1 = MINUS_INF; max_beta2 = MINUS_INF; 
      for( i = 0; i < dim; i ++ )
      {
         Ha1[i] = Ha1[i] + tmp*(col_u[i] - col_v[i]);

         beta = Ha1[i] + Ha2[i] + vector_c[i];
         if( vector_y[i] == 1 ) 
           {
             if( min_beta1 > beta ) { u1 = i; min_beta1 = beta; }
             if( max_beta1 < beta && alpha[i] > 0 ) { v1 = i; max_beta1 = beta; }
           }
         else
           {
             if( min_beta2 > beta ) { u2 = i; min_beta2 = beta; }
             if( max_beta2 < beta && alpha[i] > 0) { v2 = i; max_beta2 = beta; }
           }
      }
    }
    else
    {
      Huu = diag_H[u2];
      Hvv = diag_H[v2];
      Huv = col_u[v2];
  
      lambda = delta2/(alpha[v2]*( Huu - 2*Huv + Hvv ));
      lambda = MIN(1,lambda);

      tmp = lambda*alpha[v2];
      aHa22 = aHa22 + 2*tmp*( Ha2[u2]-Ha2[v2]) + tmp*tmp*( Huu - 2*Huv + Hvv);
      aHa12 = aHa12 + tmp*(Ha1[u2]-Ha1[v2]);
      ac2 = ac2 + tmp*( vector_c[u2]-vector_c[v2] );

      alpha[u2] = alpha[u2] + tmp;
      alpha[v2] = alpha[v2] - tmp;

      min_beta1 = PLUS_INF; min_beta2 = PLUS_INF;
      max_beta1 = MINUS_INF; max_beta2 = MINUS_INF; 
      for(i = 0; i < dim; i++ ) 
      {  
         Ha2[i] = Ha2[i] + tmp*( col_u[i] - col_v[i] );

         beta = Ha1[i] + Ha2[i] + vector_c[i];

         if( vector_y[i] == 1 ) 
         {
           if( min_beta1 > beta ) { u1 = i; min_beta1 = beta; }
           if( max_beta1 < beta && alpha[i] > 0 ) { v1 = i; max_beta1 = beta; }
         }
         else
         {
           if( min_beta2 > beta ) { u2 = i; min_beta2 = beta; }
           if( max_beta2 < beta && alpha[i] > 0) { v2 = i; max_beta2 = beta; }
         }
      }
    }

    UB = 0.5*(aHa11 + 2*aHa12 + aHa22) + ac1 + ac2;
    LB = min_beta1 + min_beta2 - 0.5*(aHa11 + 2*aHa12 + aHa22);
  
    delta1 = Ha1[v1] + Ha2[v1] + vector_c[v1] - min_beta1;
    delta2 = Ha1[v2] + Ha2[v2] + vector_c[v2] - min_beta2;

    if( delta1 > delta2 ) 
    {
       col_u = (double*)get_col(u1,-1);

      /* search for optimal v while u is fixed */
      for( max_improv =  MINUS_INF, i = 0; i < dim; i++ ) {

        if( vector_y[i] == 1 && alpha[i] != 0 ) {

          beta = Ha1[i] + Ha2[i] + vector_c[i];

          if( beta >= min_beta1 ) {

            tmp = diag_H[u1] - 2*col_u[i] + diag_H[i];
            if( tmp != 0 ) {
              improv = (0.5*(beta-min_beta1)*(beta-min_beta1))/tmp;

              if( improv > max_improv ) {
                max_improv = improv;
                v1 = i;
              }
            }
          }
        }
      }
      col_v = (double*)get_col(v1,u1);
      delta1 = Ha1[v1] + Ha2[v1] + vector_c[v1] - min_beta1;
      which_case = 1;
      
    }
    else
    {
       col_u = (double*)get_col(u2,-1);

      /* search for optimal v while u is fixed */
      for( max_improv =  MINUS_INF, i = 0; i < dim; i++ ) {

        if( vector_y[i] == 2 && alpha[i] != 0 ) {

          beta = Ha1[i] + Ha2[i] + vector_c[i];

          if( beta >= min_beta2 ) {

            tmp = diag_H[u2] - 2*col_u[i] + diag_H[i];
            if( tmp != 0 ) {
              improv = (0.5*(beta-min_beta2)*(beta-min_beta2))/tmp;

              if( improv > max_improv ) {
                max_improv = improv;
                v2 = i;
              }
            }
          }
        }
      }

      col_v = (double*)get_col(v2,u2);
      delta2 = Ha1[v2] + Ha2[v2] + vector_c[v2] - min_beta2;
      which_case = 2;
    }
    

    /* Stopping conditions */
    if( UB-LB <= tolabs ) exitflag = 1; 
    else if( UB-LB <= ABS(UB)*tolrel ) exitflag = 2;
    else if(LB > th) exitflag = 3;
    else if(t >= tmax) exitflag = 0; 

    if( verb && (t % verb) == 0) {
     mexPrintf("%d: UB=%f,LB=%f,UB-LB=%f,(UB-LB)/|UB|=%f\n",
        t, UB, LB, UB-LB,(UB-LB)/UB); 
    }  

    /* Store selected values */
    if( t < History_size ) {
      History[INDEX(0,t,2)] = LB;
      History[INDEX(1,t,2)] = UB;
    }
    else {
      tmp_ptr = mxCalloc((History_size+HISTORY_BUF)*2,sizeof(double));
      if( tmp_ptr == NULL ) mexErrMsgTxt("Not enough memory.");
      for( i = 0; i < History_size; i++ ) {
        tmp_ptr[INDEX(0,i,2)] = History[INDEX(0,i,2)];
        tmp_ptr[INDEX(1,i,2)] = History[INDEX(1,i,2)];
      }
      tmp_ptr[INDEX(0,t,2)] = LB;
      tmp_ptr[INDEX(1,t,2)] = UB;
      
      History_size += HISTORY_BUF;
      mxFree( History );
      History = tmp_ptr;
    }
  }

  /* print info about last iteration*/
  if(verb && (t % verb) ) {
    mexPrintf("Exit: UB=%f, LB=%f, UB-LB=%f, (UB-LB)/|UB|=%f \n",
      UB, LB, UB-LB,(UB-LB)/UB);
  }  

  /*------------------------------------------------------- */
  /* Set outputs                                            */
  /*------------------------------------------------------- */
  (*ptr_t) = t;
  (*ptr_aHa11) = aHa11;
  (*ptr_aHa22) = aHa22;
  (*ptr_History) = History;

  /* Free memory */
  mxFree( Ha1 );
  mxFree( Ha2 );
  
  return( exitflag ); 
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国女主播一区二区三区| 91麻豆精品国产| 国产永久精品大片wwwapp| 国产一区二区剧情av在线| 久久午夜老司机| 亚洲18影院在线观看| 中文字幕欧美国产| 亚洲欧美日韩国产中文在线| 亚洲一区二区在线视频| 国产资源在线一区| 91激情在线视频| 91精品国产综合久久久久久| 99国产欧美另类久久久精品| 日韩高清一区在线| 国产日韩精品一区二区三区在线| 91免费视频网址| 粉嫩绯色av一区二区在线观看| 中文字幕在线播放不卡一区| 7777精品久久久大香线蕉| 国产人久久人人人人爽| 久久精品噜噜噜成人88aⅴ| 一本久道久久综合中文字幕| 久久久电影一区二区三区| 男女男精品视频| 欧美三级欧美一级| 亚洲美女区一区| 99久久精品国产麻豆演员表| 久久久久9999亚洲精品| 精品亚洲国产成人av制服丝袜| 欧美久久久久久蜜桃| 亚洲国产精品天堂| 欧美视频日韩视频在线观看| 一区二区久久久久| 91福利精品视频| 亚洲黄色小说网站| 91久久精品午夜一区二区| 亚洲区小说区图片区qvod| www.日韩在线| 最好看的中文字幕久久| 成人三级在线视频| 中国av一区二区三区| 成人av在线网| 亚洲人成网站色在线观看| 91视频免费观看| 亚洲黄色尤物视频| 欧美日韩大陆一区二区| 日日夜夜精品视频免费| 欧美一级理论片| 理论片日本一区| 久久久久久亚洲综合影院红桃| 国产伦精品一区二区三区视频青涩| 精品少妇一区二区三区视频免付费 | 国产一区二区三区不卡在线观看| 欧美成人性战久久| 丰满岳乱妇一区二区三区| 国产欧美日韩精品a在线观看| 成人精品一区二区三区四区| 亚洲色图制服丝袜| 欧美日本国产视频| 九色综合狠狠综合久久| 国产欧美日韩麻豆91| 日本久久一区二区三区| 麻豆精品久久精品色综合| 国产日韩一级二级三级| 一本色道久久综合狠狠躁的推荐| 亚洲成a人片综合在线| 精品99999| 色噜噜狠狠色综合欧洲selulu| 亚洲一区二区欧美| 久久伊99综合婷婷久久伊| 成人国产视频在线观看| 亚洲国产精品一区二区www在线| 91精品国产aⅴ一区二区| 成人一区二区三区视频在线观看| 亚洲精品成人精品456| 日韩欧美国产1| 成a人片亚洲日本久久| 日韩一区精品字幕| 中文字幕在线不卡视频| 91精品国产一区二区三区蜜臀| 国产不卡高清在线观看视频| 亚洲18色成人| 国产精品高清亚洲| 欧美成人午夜电影| 欧美亚洲国产一区二区三区| 东方欧美亚洲色图在线| 日本伊人午夜精品| 1024亚洲合集| 久久精品一区二区三区四区| 91精品国产综合久久久久久久久久 | 欧美电影免费观看高清完整版| 国产91精品久久久久久久网曝门| 日本亚洲最大的色成网站www| 国产精品久99| 久久久久久麻豆| 日韩午夜激情av| 欧美疯狂性受xxxxx喷水图片| 成人国产亚洲欧美成人综合网| 日韩电影一区二区三区| 国产精品毛片久久久久久| 日韩欧美资源站| 欧美日本国产视频| 欧美日韩精品专区| 欧美视频在线播放| 欧美无乱码久久久免费午夜一区| 99久久免费视频.com| 国产乱妇无码大片在线观看| 青青草国产成人99久久| 亚洲va欧美va人人爽午夜| 亚洲女人的天堂| 亚洲婷婷综合色高清在线| 欧美国产精品一区二区| 国产欧美一区二区在线观看| 亚洲精品在线观看视频| 日韩欧美国产综合| 日韩欧美国产成人一区二区| 欧美一区二区播放| 在线播放视频一区| 91精选在线观看| 欧美一级一区二区| 欧美一级精品在线| 精品久久一区二区三区| 欧美mv日韩mv亚洲| 久久久久久久综合色一本| 久久婷婷成人综合色| 2023国产精品自拍| 久久久久国产精品人| 中文字幕免费在线观看视频一区| 日本一区二区三区久久久久久久久不 | 欧美亚洲国产bt| 91精品麻豆日日躁夜夜躁| 精品久久久三级丝袜| 国产欧美一二三区| 亚洲三级理论片| 一区二区国产盗摄色噜噜| 日精品一区二区| 麻豆精品在线视频| 高清不卡一二三区| 色婷婷久久久久swag精品| 欧美区在线观看| 久久久影院官网| 国产精品福利一区二区三区| 一区二区三区日韩精品视频| 秋霞成人午夜伦在线观看| 国产原创一区二区三区| 91麻豆精品在线观看| 欧美精品丝袜中出| 久久精品一区二区三区不卡牛牛| 中文字幕日韩一区| 日韩精彩视频在线观看| 国产风韵犹存在线视精品| 色综合久久久久网| 91精品国产aⅴ一区二区| 国产日韩欧美制服另类| 亚洲精品国产无天堂网2021| 日韩av一区二区三区四区| 成人禁用看黄a在线| 欧美三级一区二区| 欧美国产精品一区二区三区| 亚洲成人激情av| 成人免费视频视频在线观看免费| 欧美日韩亚洲综合一区二区三区| 久久一夜天堂av一区二区三区| 亚洲精品一二三四区| 国产乱码精品一区二区三区忘忧草 | 国产.欧美.日韩| 欧美精品在线观看播放| 国产精品美女久久久久久久网站| 午夜激情一区二区三区| 粉嫩一区二区三区在线看| 欧美精品xxxxbbbb| 国产精品高潮呻吟| 国产乱码一区二区三区| 欧美乱妇20p| 亚洲视频电影在线| 国产精品77777竹菊影视小说| 在线观看www91| 国产精品福利电影一区二区三区四区| 三级在线观看一区二区| 91麻豆国产在线观看| 精品久久人人做人人爰| 日韩国产欧美一区二区三区| 日本精品视频一区二区三区| 国产精品女人毛片| 国产精品影视网| 久久综合成人精品亚洲另类欧美 | 91影视在线播放| 中文欧美字幕免费| 国产精品一区二区三区网站| 欧美日韩免费观看一区三区| 亚洲日本电影在线| 国产成都精品91一区二区三| 精品奇米国产一区二区三区| 丝袜a∨在线一区二区三区不卡 | 成人免费高清在线| 久久综合色之久久综合| 久久精品国产77777蜜臀| 欧美一区二区在线不卡| 日日欢夜夜爽一区| 欧美一区二区三区免费视频|