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

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

?? kernel.cpp

?? 這是我找到的C語言編寫的支持向量機程序包
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
#include "kernel.h"/** * * kernel_container_c * **/kernel_container_c::~kernel_container_c(){  kernel = 0;};kernel_c* kernel_container_c::get_kernel(){  if(kernel == 0){    kernel = new kernel_dot_c();    is_linear=1;      };  return kernel;};void kernel_container_c::clear(){  // do not delete kernel, for reading of aggregation kernels  kernel = 0;};istream& operator >> (istream& data_stream, kernel_container_c& the_kernel){  char* s = new char[MAXCHAR];  if(data_stream.eof() || ('@' == data_stream.peek())){    // no kernel definition, take dot as default    if(0 != the_kernel.kernel){      delete the_kernel.kernel;    };    the_kernel.kernel = new kernel_dot_c();    //    throw read_exception("No kernel definition found");  }  else{    while((! data_stream.eof()) &&	  (('#' == data_stream.peek()) ||	   ('\n' == data_stream.peek()))){	// ignore comment & newline	data_stream.getline(s,MAXCHAR);    };    data_stream >> s;    if(0 == strcmp("type",s)) {      the_kernel.is_linear=0;      data_stream >> s;      if(0==strcmp("dot",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_dot_c();	the_kernel.is_linear=1;	data_stream >> *(the_kernel.kernel);      }      else if(0==strcmp("lin_dot",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_lin_dot_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("polynomial",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_polynomial_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("radial",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_radial_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("neural",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_neural_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("anova",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_anova_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("fourier",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_fourier_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("reg_fourier",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_reg_fourier_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("exponential",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_exponential_c();	data_stream >> *(the_kernel.kernel);      }      else if((0==strcmp("complete_matrix",s))||(0==strcmp("comp",s))){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_regularized_c();	data_stream >> *(the_kernel.kernel);      }      else if((0==strcmp("regularized",s))||(0==strcmp("reg",s))){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_regularized_c();	data_stream >> *(the_kernel.kernel);      }      else if((0==strcmp("aggregation",s))||(0==strcmp("sum_aggregation",s))){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_aggregation_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("prod_aggregation",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_prod_aggregation_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("zero",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_zero_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("lintransform",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_lintransform_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("user",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_user_c();	data_stream >> *(the_kernel.kernel);      }      else if(0 == strcmp("user2",s)){	if(0 != the_kernel.kernel){	  delete the_kernel.kernel;	};	the_kernel.kernel = new kernel_user2_c();	data_stream >> *(the_kernel.kernel);      }      // insert code for other kernels here      else{	char* t = new char[MAXCHAR];	strcpy(t,"Unknown kernel type: ");	strcat(t,s);	throw read_exception(t);      };    }    else{      cout<<"read: "<<s<<endl;      throw read_exception("kernel type has to be defined first");    };  };  delete []s;  return data_stream;};ostream& operator << (ostream& data_stream, kernel_container_c& the_kernel){  if(0 != the_kernel.kernel){    data_stream << *(the_kernel.kernel);  }  else{    data_stream << "Empty kernel"<<endl;  };  return data_stream;};/** * * kernel_c * **/kernel_c::kernel_c(){  dim =0;  cache_size=0;  examples_size = 0;  rows = 0;  last_used = 0;  index = 0;  counter=0;  // cache profiling:  //  cache_misses = 0;  //  cache_access = 0;};kernel_c::~kernel_c(){  //  cout<<"destructor"<<endl;  // cache profiling:  //  cout<<cache_access<<" access to the cache"<<endl;  //  cout<<cache_misses<<" cache misses ("<<100.0*(SVMFLOAT)cache_misses/((SVMFLOAT)cache_access)<<"%)"<<endl;  clean_cache();};SVMFLOAT kernel_c::calculate_K(const SVMINT i, const SVMINT j){  //  cout<<"K("<<i<<","<<j<<")"<<endl;  //    if(cached(i) && cached(j)){  //      // both are cached -> not shrinked  //      return(rows[lookup(i)][lookup(j)]);  //    };//   SVMINT pos_x = lookup(i);//   SVMINT pos_y = lookup(j);//   if((index[pos_x] == i) && (index[pos_y] == j)//      && (last_used[pos_x] != 0) && (last_used[pos_y] != 0)){//     return rows[pos_x][j];//   };  svm_example x = the_examples->get_example(i);  svm_example y = the_examples->get_example(j);  return(calculate_K(x,y));};inlineSVMFLOAT kernel_c::calculate_K(const svm_example x, const svm_example y){  // default is inner product  return innerproduct(x,y); };inlineSVMFLOAT kernel_c::innerproduct(const svm_example x, const svm_example y){  // returns x*y  SVMFLOAT result=0;  svm_attrib* att_x = x.example;  svm_attrib* att_y = y.example;  svm_attrib* length_x = &(att_x[x.length]);  svm_attrib* length_y = &(att_y[y.length]);  while((att_x < length_x) && (att_y < length_y)){    if(att_x->index == att_y->index){      result += (att_x->att)*(att_y->att);      att_x++;      att_y++;    }    else if(att_x->index < att_y->index){      att_x++;    }    else{      att_y++;    };  };  return result;};int kernel_c::cached(const SVMINT i){  int ok;  SVMINT pos = lookup(i);  if(index[pos] == i){    if(last_used[pos] > 0){      ok = 1;    }    else{      ok = 0;    };  }  else{    ok = 0;  };  return(ok);};SVMFLOAT kernel_c::norm2(const svm_example x, const svm_example y){  // returns ||x-y||^2  SVMFLOAT result=0;  SVMINT length_x = x.length;  SVMINT length_y = y.length;  svm_attrib* att_x = x.example;  svm_attrib* att_y = y.example;  SVMINT pos_x=0;  SVMINT pos_y=0;  SVMFLOAT dummy;  while((pos_x < length_x) && (pos_y < length_y)){    if(att_x[pos_x].index == att_y[pos_y].index){      dummy = att_x[pos_x++].att-att_y[pos_y++].att;      result += dummy*dummy;    }    else if(att_x[pos_x].index < att_y[pos_y].index){      dummy = att_x[pos_x++].att;      result += dummy*dummy;    }    else{      dummy = att_y[pos_y++].att;      result += dummy*dummy;    };  };  while(pos_x < length_x){    dummy = att_x[pos_x++].att;    result += dummy*dummy;  };  while(pos_y < length_y){    dummy = att_y[pos_y++].att;    result += dummy*dummy;  };  return result;};int kernel_c::check(){  // check cache integrity, for debugging  int result = 1;  cout<<"Checking cache"<<endl;  SVMINT i;  // rows != 0  for(i=0;i<cache_size;i++){    if(rows[i] == 0){      cout<<"ERROR: row["<<i<<"] = 0"<<endl;      result = 0;    };  };  cout<<"rows[i] checked"<<endl;  // 0 <= index <= examples_size  if(index != 0){    SVMINT last_i=index[0];    for(i=0;i<=cache_size;i++){      if(index[i]<0){	cout<<"ERROR: index["<<i<<"] = "<<index[i]<<endl;	result = 0;      };      if(index[i]>examples_size){	cout<<"ERROR: index["<<i<<"] = "<<index[i]<<endl;	result = 0;      };      if(index[i]<last_i){	cout<<"ERROR: index["<<i<<"] descending"<<endl;	result = 0;      };      last_i = index[i];    };  };  cout<<"index[i] checked"<<endl;  // 0 <= last_used <= counter  for(i=0;i<cache_size;i++){    if(last_used[i]<0){      cout<<"ERROR: last_used["<<i<<"] = "<<last_used[i]<<endl;      result = 0;    };    if(last_used[i]>counter){      cout<<"ERROR: last_used["<<i<<"] = "<<last_used[i]<<endl;      result = 0;    };  };  cout<<"last_used[i] checked"<<endl;  cout<<"complete cache test"<<endl;  SVMFLOAT* adummy;  SVMINT i2;  for(i2=0;i2<cache_size;i2++){    cout<<i2<<" "; cout.flush();    adummy = new SVMFLOAT[examples_size];    for(SVMINT ai=0;ai<examples_size;ai++) adummy[ai] = (rows[i2])[ai];    delete [](rows[i2]);    rows[i] = adummy;  }  cout<<"cache test succeeded"<<endl;  return result;};void kernel_c::init(SVMINT cache_MB, example_set_c* new_examples){//   cout<<"init"<<endl;//   cout<<"cache_size = "<<cache_size<<endl;//   cout<<"examples_size = "<<examples_size<<endl;//   cout<<"rows = "<<rows<<endl;//   if(rows != 0)cout<<"rows[0] = "<<rows[0]<<endl;  clean_cache();  the_examples = new_examples;   dim = the_examples->get_dim();  cache_mem = cache_MB*1048576;  // check if reserved memory big enough  if(cache_mem<(SVMINT)(sizeof(SVMFLOAT)*the_examples->size()+sizeof(SVMFLOAT*)+2*sizeof(SVMINT))){    // not enough space for one example, increaee    cache_mem = sizeof(SVMFLOAT)*the_examples->size()+sizeof(SVMFLOAT*)+2*sizeof(SVMINT);  };  set_examples_size(the_examples->size());};void kernel_c::clean_cache(){  counter=0;  if(rows != 0){    SVMINT i;    for(i=0;i<cache_size;i++){      if(0 != rows[i]){	delete [](rows[i]);	rows[i]=0;      };    };    delete []rows;  };  if(last_used != 0) delete []last_used;  if(index != 0) delete []index;  rows=0;  last_used=0;  index=0;  cache_size=0;  examples_size=0;};inlineSVMINT kernel_c::lookup(const SVMINT i){  // find row i in cache  // returns pos of element i if i in cache,  // returns pos of smallest element larger than i otherwise  SVMINT low;  SVMINT high;  SVMINT med;  low=0;  high=cache_size;  // binary search  while(low<high){    med = (low+high)/2;    if(index[med]>=i){      high=med;    }    else{      low=med+1;    };  };  return high;};void kernel_c::overwrite(const SVMINT i, const SVMINT j){  // overwrite entry i with entry j  // WARNING: only to be used for shrinking!  // i in cache?  SVMINT pos_i=lookup(i);  SVMINT pos_j=lookup(j);  if((index[pos_i] == i) && (index[pos_j] == j)){    // swap pos_i and pos_j    SVMFLOAT* dummy = rows[pos_i];    rows[pos_i] = rows[pos_j];    rows[pos_j] = dummy;    last_used[pos_i] = last_used[pos_j];  }  else{    // mark rows as invalid    if(index[pos_i] == i){      last_used[pos_i] = 0;    }    else if(index[pos_j] == j){      last_used[pos_j] = 0;    };  };  // swap i and j in all rows  SVMFLOAT* my_row;  for(pos_i=0;pos_i<cache_size;pos_i++){    my_row = rows[pos_i];    if(my_row != 0){      my_row[i] = my_row[j];    };  };};void kernel_c::set_examples_size(const SVMINT new_examples_size){  // cache row with new_examples_size entries only    // cout<<"shrinking from "<<examples_size<<" to "<<new_examples_size<<endl;  if(new_examples_size>examples_size){    clean_cache();    examples_size = new_examples_size;    cache_size = cache_mem/(sizeof(SVMFLOAT)*examples_size+sizeof(SVMFLOAT*)+2*sizeof(SVMINT));    if(cache_size>examples_size){      cache_size = examples_size;    };    // init     rows = new SVMFLOAT*[cache_size];    last_used = new SVMINT[cache_size];    index = new SVMINT[cache_size+1];    SVMINT i;    for(i=0;i<cache_size;i++){      rows[i] = 0; // new SVMFLOAT[new_examples_size];      last_used[i] = 0;      index[i] = new_examples_size;    };    index[cache_size] = new_examples_size;  }  else if(new_examples_size<examples_size){    // copy as much rows into new cache as possible    SVMINT old_cache_size=cache_size;    cache_size = cache_mem/(sizeof(SVMFLOAT)*new_examples_size+sizeof(SVMFLOAT*)+2*sizeof(SVMINT));    if(cache_size > new_examples_size){      cache_size = new_examples_size;    };    if(cache_size>=old_cache_size){      // skip it, enough space available      cache_size=old_cache_size;      return;    };    SVMFLOAT** new_rows = new SVMFLOAT*[cache_size];    SVMINT* new_last_used = new SVMINT[cache_size];    SVMINT* new_index = new SVMINT[cache_size+1];    SVMINT old_pos=0;    SVMINT new_pos=0;    new_index[cache_size] = new_examples_size;    while((old_pos<old_cache_size) && (new_pos < cache_size)){      if(last_used[old_pos] > 0){	// copy example into new cache at new_pos	new_rows[new_pos] = new SVMFLOAT[new_examples_size];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区免费视频| 91精品国产免费久久综合| 亚洲精品高清视频在线观看| 日韩午夜小视频| 91啪亚洲精品| 国产精品一色哟哟哟| 天堂va蜜桃一区二区三区漫画版| 久久色在线观看| 在线成人高清不卡| 91丨porny丨户外露出| 国产主播一区二区| 日本不卡视频一二三区| 亚洲精品国产视频| 国产欧美一区二区三区沐欲| 欧美一卡二卡三卡四卡| 91极品视觉盛宴| 91免费看`日韩一区二区| 国产精品一区专区| 激情欧美一区二区| 日韩精品1区2区3区| 中文字幕一区二区5566日韩| 国产色产综合色产在线视频 | 91老师片黄在线观看| 国产一区三区三区| 久久精品国内一区二区三区| 亚洲超丰满肉感bbw| 亚洲综合久久久| 椎名由奈av一区二区三区| 国产精品天天看| 国产亚洲欧洲997久久综合 | 一区在线观看免费| 国产午夜精品美女毛片视频| 日韩精品中文字幕一区| 91精品国产欧美一区二区成人 | 奇米精品一区二区三区在线观看| 亚洲国产视频一区| 一区二区三区四区不卡在线| 亚洲另类色综合网站| 亚洲免费视频成人| 亚洲永久精品大片| 亚洲一二三区在线观看| 亚洲国产日韩综合久久精品| 无码av免费一区二区三区试看| 亚洲一二三四区不卡| 亚洲一级电影视频| 亚洲超碰精品一区二区| 日日夜夜精品视频天天综合网| 五月婷婷综合激情| 另类小说欧美激情| 韩国成人精品a∨在线观看| 国产精品2024| 99久久伊人精品| 日本精品一级二级| 欧美日韩国产成人在线免费| 日韩欧美中文字幕精品| 久久久青草青青国产亚洲免观| 国产欧美精品一区| 亚洲天堂久久久久久久| 亚洲成a人v欧美综合天堂| 日日夜夜精品视频天天综合网| 青青草国产成人av片免费| 韩国av一区二区三区四区| 国产不卡高清在线观看视频| 99久久婷婷国产精品综合| 欧美性猛片xxxx免费看久爱| 欧美一区二区三区四区五区| 国产精品三级av在线播放| 精品sm捆绑视频| 国产精品国产三级国产aⅴ入口 | 久久99精品国产麻豆婷婷 | 日韩av电影天堂| 亚洲成a人在线观看| 精品亚洲免费视频| 国产精品情趣视频| 国产日韩欧美一区二区三区乱码 | 激情都市一区二区| 成人精品视频一区| 欧美日韩精品一二三区| 久久精品视频在线看| 一区二区三区高清| 国内成+人亚洲+欧美+综合在线| 成人丝袜高跟foot| 欧美精品aⅴ在线视频| 欧美国产一区在线| 亚洲h动漫在线| 成人精品免费看| 制服丝袜在线91| 国产精品视频观看| 日本美女一区二区三区| 本田岬高潮一区二区三区| 日韩限制级电影在线观看| 亚洲欧洲精品一区二区三区 | 综合在线观看色| 久久69国产一区二区蜜臀| 日本精品视频一区二区| 国产三级精品三级在线专区| 亚洲h精品动漫在线观看| 成人黄动漫网站免费app| 3d动漫精品啪啪1区2区免费| 亚洲欧洲成人精品av97| 久久电影网站中文字幕| 欧美亚洲丝袜传媒另类| 中文字幕欧美三区| 国内精品免费在线观看| 欧美日韩国产高清一区| 亚洲精品日日夜夜| 风流少妇一区二区| 欧美大尺度电影在线| 亚洲大片免费看| 色综合中文字幕国产 | 91精品国产综合久久久久久| 久久九九99视频| 日韩成人一区二区| 欧美在线视频日韩| 一区二区三区在线视频免费| 成人a级免费电影| 国产日韩三级在线| 国产精品一区二区三区乱码| 欧美成人乱码一区二区三区| 日本欧美在线观看| 欧美日韩国产一级片| 一区二区不卡在线播放 | 99精品久久久久久| 一区二区成人在线观看| 不卡av在线网| 国产精品久久久久影院亚瑟| 国产成人综合在线观看| 久久久亚洲高清| 国产一区欧美一区| 久久婷婷成人综合色| 狠狠色丁香久久婷婷综合丁香| 91精品国产综合久久蜜臀| 五月天婷婷综合| 欧美久久久一区| 日韩二区在线观看| 日韩一区二区在线看| 免费成人在线观看视频| 日韩欧美色综合| 麻豆精品久久精品色综合| 欧美mv日韩mv国产网站app| 捆绑调教美女网站视频一区| 欧美成人激情免费网| 国精产品一区一区三区mba桃花 | 一区二区三区不卡视频| 欧美在线一区二区| 视频一区二区三区中文字幕| 欧美精品视频www在线观看| 日韩国产欧美在线播放| 精品久久久久久综合日本欧美| 极品销魂美女一区二区三区| 国产欧美精品国产国产专区| 91小视频在线| 亚洲丶国产丶欧美一区二区三区| 欧美日韩精品欧美日韩精品一综合| 一区二区三区免费| 欧美一区二区观看视频| 激情小说亚洲一区| 中文字幕不卡在线观看| 色婷婷国产精品综合在线观看| 亚洲国产欧美在线人成| 久久蜜臀精品av| 蜜乳av一区二区三区| 在线播放中文一区| 免费成人在线网站| 国产三级精品三级在线专区| 99国产精品视频免费观看| 亚洲成精国产精品女| 欧美不卡视频一区| 成人短视频下载| 亚洲va欧美va国产va天堂影院| 欧美性受xxxx黑人xyx性爽| 日日噜噜夜夜狠狠视频欧美人| 久久综合999| 欧美在线你懂得| 国产精品69毛片高清亚洲| 中文字幕在线一区| 99精品欧美一区| 日本 国产 欧美色综合| 国产精品久久久久久久久免费樱桃| 在线观看日韩一区| 日韩av电影免费观看高清完整版 | 中文字幕第一区| 91久久线看在观草草青青 | 欧美性色综合网| 国产综合成人久久大片91| 一区二区高清免费观看影视大全| 欧美不卡123| 色婷婷综合久色| 91免费版pro下载短视频| 色综合中文字幕| 亚洲人快播电影网| 在线观看中文字幕不卡| 精品国产乱码久久久久久影片| 久久久久国产一区二区三区四区 | 69堂成人精品免费视频| 欧美亚一区二区| 国产经典欧美精品| 91色在线porny| 亚洲美女精品一区| 国产一区二区在线电影|