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

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

?? matrixvector.cc

?? 一種聚類算法,名字是cocluster
?? CC
字號:
/*  MatrixVector.cc    Implementation of the MatrixVector class    Copyright (c) 2005, 2006              by Hyuk Cho    Copyright (c) 2003, 2004    	      by Hyuk Cho, Yuqiang Guan, and Suvrit Sra                {hyukcho, yguan, suvrit}@cs.utexas.edu*/#include <iostream>#include <cmath>#include "MatrixVector.h"/* //The procedure dqrbasis outputs an orthogonal basis spanned by the rows//  of matrix a (using the QR Factorization of a ).  void dqrbasis( int m, int n, double **a, double **q , double *work){  for(int i = 0; i < m; i++){    dmatvec(i, n, q, a[i], work);    dmatvecat(i, n, q, work, q[i]);    for(int j = 0; j < n; j++)      q[i][j] = a[i][j] - q[i][j];    dvec_l2normalize(n, q[i]);  }}// Does y = A * x, A is mxn, and y & x are mx1 and nx1 vectors respectively  void dmatvec(int m, int n, double **a, double *x, double *y){  for(int i = 0; i < m; i++){    double yi = 0.0;    for(int j = 0; j < n; j++)      yi += a[i][j] * x[j];    y[i] = yi;  }}// Does y = A' * x, A is mxn, and y & x are nx1 and mx1 vectors respectively  void dmatvecat(int m, int n, double **a, double *x, double *y){  for(int i = 0; i < n; i++){    double yi = 0.0;    for(int j = 0; j < m; j++)      yi += a[j][i] * x[j];    y[i] = yi;  }}// The function dvec_l2normsq computes the square of the Euclidean length // (2-norm) of the double precision vector v double dvec_l2normsq( int dim, double *v ){  double length = 0.0;  for(int i = 0; i < dim; i++){    double tmp = *v++;    length += tmp * tmp;  }  return length;}// The function dvec_l2normalize normalizes the double precision vector v to have 2-norm equal to 1 void dvec_l2normalize( int dim, double *v ){  double nrm = sqrt(dvec_l2normsq(dim, v));  if (nrm != 0)    dvec_scale(1.0 / nrm, dim, v);}void dvec_scale( double alpha, int n, double *v ){  for(int i = 0; i < n; i++){    *v++ = *v * alpha;  }}*/double normalize_vec(double vec[], int n){  double norm = 0.0;  for (int i = 0; i < n; i++){    double tempValue = vec[i];    norm += tempValue * tempValue;  }  if (norm > 0){    norm = sqrt(norm);    for (int i = 0; i < n; i++)      vec[i] /= norm;  }  return norm;}double normalize_vec_1(double vec[], int n){  double norm = 0.0;  for (int i = 0; i < n; i++)    norm += fabs(vec[i]);  if (norm > 0)     for (int i = 0; i < n; i++)	vec[i] /= norm;  return norm;}void average_vec(double vec[], int n, int num){  for (int i = 0; i < n; i++)    vec[i] /= num;} double Kullback_leibler(double *x, double *y, int n)  // in nats NOT in bits{  double result = 0.0;  for (int i = 0; i < n; i++){    double tempX = x[i];    if (tempX > 0.0){      double tempY = y[i];      if (tempY > 0.0)	result += tempX * log(tempX / tempY);      else	return MY_DBL_MAX;    }  }	  return result;}double euclidian_distance(double *v1, double *v2, int n){  double result = 0.0;  for (int j = 0; j < n; j++){    double tempValue = v1[j] - v2[j];    result += tempValue * tempValue;  }  return sqrt(result);}double norm_1(double *x, int n){  double result =0.0;  for (int i = 0; i < n; i++)    result += fabs(x[i]);  return result;}double dot_mult(double *v1, double *v2, int n){  double result = 0.0;  for (int j = 0; j < n; j++)    result += v1[j] * v2[j];  return result;}double norm_2(double vec[], int n)  //compute squared L2 norm of vec{  double norm = 0.0;  for (int i = 0; i < n; i++){    double tempValue = vec[i];    norm += tempValue * tempValue;  }  return norm; }double KL_norm (double vec[], int n){  double norm = 0.0;  for (int i = 0; i < n; i++){    double tempValue = vec[i];    if (tempValue > 0.0)      norm += tempValue * log(tempValue) / log(2.0);  }  return norm;}void Ax(double *vals, int *rowinds, int *colptrs, int dim1, int dim2, double *x, double *result)  /* compute Ax for a sparse matrix A and a dense vector x     suppose A is (dim1 by dim2) matrix and x is (dim2 by 1) vector */ {  for (int i = 0; i < dim1; i++)    result[i] = 0.0;  for (int i = 0; i < dim2; i++)    for (int j = colptrs[i]; j < colptrs[i+1]; j++)      result[rowinds[j]] += vals[j] * x[i];}void Ax(double **A, double *x, int dim1, int dim2, double *result)  //for dense matrix, A is a matrix and x is a vector{  for (int i = 0; i < dim1; i++){    result[i] = 0;    for (int j = 0; j < dim2; j++)      result[i] += A[i][j] * x[j];  }}double x_dot_y(double *x, double *y, int dim1){  double dot = 0;  for (int i = 0; i < dim1; i++)    dot += x[i] * y[i];  return dot;}void power_method(double **A, int dim, double * CV, double *init, double & Lamda)  // for dense square matrix A of dim by dim, initialized with vector init{  //RandomGeneratorMT19937 randNumGenerator;  double *x=new double[dim], *y=new double[dim], norm, *temp=new double[dim], *old_x=new double[dim], dis=0;  for (int i = 0; i < dim; i++)    x[i] = old_x[i] = init[i];  do {    Ax(A, x, dim, dim, y);    norm = sqrt(norm_2(y, dim));    for (int i=0; i<dim; i++)      x[i] = y[i] / norm;    Ax(A, x, dim, dim, temp);    Lamda = x_dot_y(x, temp, dim);    dis = euclidian_distance(x, old_x, dim);    for (int i = 0; i < dim; i++)      old_x[i] = x[i];    //cout <<dis<<" ";   } while (dis  > Power_Method_Epsilon);  if (CV != NULL)    for (int i = 0; i < dim; i++)      CV[i] = x[i];  //cout <<"Powermethod is done"<<endl;}void power_method(double *vals, int *rowinds, int *colptrs, int dim, double * CV, double *init, double & Lamda)  // power_method works for square matrix only; so we have only 1 value for dimension{  //RandomGeneratorMT19937 randNumGenerator;  double *x=new double[dim], *y=new double[dim], norm, *temp=new double[dim], *old_x=new double[dim], dis=0;  //randNumGenerator.Set((unsigned)time(NULL));  for (int i = 0; i < dim; i++)    x[i] = old_x[i] = init[i];  do {    Ax(vals, rowinds, colptrs, dim, dim, x, y);    norm = sqrt(norm_2(y, dim));    for (int i = 0; i < dim; i++)      x[i] = y[i] / norm;    Ax(vals, rowinds, colptrs, dim, dim, x, temp);    Lamda = x_dot_y(x, temp, dim);    dis = euclidian_distance(x, old_x, dim);    for (int i = 0; i < dim; i++)      old_x[i] = x[i];      //cout <<dis<<" ";  } while (dis > Power_Method_Epsilon);  if (CV != NULL)    for (int i = 0; i < dim; i++)      CV[i] = x[i];  //cout <<"Powermethod is done"<<endl;}double mutual_info(double ** matrix, int r, int c)  // compute mutual information for a dense matrix of size r by c{  double sum = 0.0, mi = 0.0, *margin_c, *margin_r;  margin_c = new double [c];  margin_r = new double [r];  for (int i = 0; i < r; i++)    margin_r[i] = 0.0;  for (int j = 0; j < c; j++)    margin_c[j] = 0.0;  for (int i = 0; i < r; i++)    for (int j = 0; j < c; j++){      margin_r[i] += matrix[i][j];      margin_c[j] += matrix[i][j];    }  for (int i = 0; i < r; i++)    sum += margin_r[i];  for (int i = 0; i < r; i++)    for (int j = 0; j < c; j++){      double tempValue = matrix[i][j];      if (tempValue > 0)	mi += tempValue * log(tempValue / (margin_r[i] * margin_c[j]));    }	  mi = mi / sum + log(sum);  mi /= log(2.0);  delete [] margin_c;  delete [] margin_r;  return mi;}double mutual_info(double ** matrix, int r, int c, double *prior)  // compute mutual information for a dense matrix of size r by c  // each row is L1-normalized{  double mi = 0.0, *margin_c = new double[c];  for (int i = 0; i < c; i++)    margin_c[i] = 0.0;  for (int i = 0; i < r; i++)    for (int j = 0; j < c; j++)      margin_c[j] += matrix[i][j] * prior[i];  for (int i = 0; i < r; i++){    double temp = 0;    for (int j = 0; j < c; j++){      double tempValue = matrix[i][j];      if (tempValue > 0)	  temp += tempValue * log(tempValue / margin_c[j]);    }    mi += temp * prior[i];  }  mi /= log(2.0);  delete [] margin_c;  return mi;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九视频精品免费| 国产91精品一区二区麻豆亚洲| 精品亚洲免费视频| 色94色欧美sute亚洲线路二| 欧美xxxxx牲另类人与| 亚洲免费大片在线观看| 国内成人自拍视频| 欧美一区二区精品| 亚洲大片精品永久免费| 99热99精品| 亚洲国产精品二十页| 久久精品国产亚洲一区二区三区| 色94色欧美sute亚洲13| 亚洲日本在线天堂| 国产91对白在线观看九色| 日韩精品一区二区三区中文不卡 | 三级影片在线观看欧美日韩一区二区 | 136国产福利精品导航| 九九九精品视频| 5566中文字幕一区二区电影| 亚洲精品欧美专区| av爱爱亚洲一区| 国产精品女主播av| 国产.欧美.日韩| 国产亚洲欧美一级| 精品一区二区久久| 精品免费一区二区三区| 奇米在线7777在线精品| 6080yy午夜一二三区久久| 亚洲一区视频在线| 精品国产污污免费网站入口| 日本高清不卡aⅴ免费网站| 国产精品蜜臀av| 99久久精品一区二区| 国产精品麻豆视频| 99国产麻豆精品| 亚洲欧洲av在线| 色婷婷精品大视频在线蜜桃视频 | 亚洲在线中文字幕| 91成人国产精品| 亚洲电影一区二区| 欧美精品一二三| 久久精品二区亚洲w码| 精品国产成人在线影院| 国内久久婷婷综合| 欧美国产日韩亚洲一区| 91在线一区二区三区| 一区二区三区中文免费| 欧美日本国产一区| 久久爱www久久做| 久久久久国产精品麻豆ai换脸| 成人激情文学综合网| 亚洲精品免费在线| 欧美一区二区三区思思人| 国产一区二区三区免费播放| 中文久久乱码一区二区| 色成年激情久久综合| 麻豆国产精品777777在线| 久久久精品天堂| 在线免费观看视频一区| 理论电影国产精品| 国产精品久久久久一区二区三区| 色婷婷综合久久| 久久不见久久见免费视频7| 中文字幕av一区二区三区高| 欧美色男人天堂| 国产精品99久久久久久久女警 | 欧洲一区二区三区在线| 久久精品国产一区二区| 国产精品狼人久久影院观看方式| 欧美色图片你懂的| 国产传媒欧美日韩成人| 一区二区三区在线观看动漫| 欧美成人video| 色狠狠av一区二区三区| 国产精品一区二区在线观看网站 | 国产精品激情偷乱一区二区∴| 精品视频在线看| 福利电影一区二区三区| 日本视频免费一区| 日韩一区中文字幕| 欧美变态tickling挠脚心| 色妞www精品视频| 国产精品 欧美精品| 亚洲第一福利一区| 国产精品不卡一区| 久久夜色精品一区| 91精品国产免费久久综合| 色中色一区二区| 丁香亚洲综合激情啪啪综合| 捆绑调教一区二区三区| 亚洲一区二区三区精品在线| 中文字幕在线一区免费| 国产午夜精品久久久久久免费视| 欧美精品久久久久久久多人混战| 91麻豆.com| 成人精品免费网站| 国产麻豆午夜三级精品| 蜜臀精品一区二区三区在线观看| 亚洲一区视频在线观看视频| 亚洲丝袜精品丝袜在线| 中文字幕av一区二区三区高| 久久久久亚洲综合| 欧美tickling网站挠脚心| 51午夜精品国产| 欧美色视频在线观看| 在线免费一区三区| 在线观看国产91| 欧美中文字幕亚洲一区二区va在线| 9久草视频在线视频精品| 成人三级在线视频| 成人午夜精品一区二区三区| 国产福利一区二区三区视频在线 | 国产麻豆成人精品| 激情综合网最新| 国产永久精品大片wwwapp| 国精产品一区一区三区mba视频| 理论电影国产精品| 精品在线免费视频| 国精产品一区一区三区mba视频| 蜜桃av一区二区| 国产一区二区在线看| 国内外成人在线视频| 国产盗摄视频一区二区三区| 成人精品视频一区二区三区| 91丨九色丨蝌蚪富婆spa| 91久久一区二区| 欧美高清视频不卡网| 欧美一级理论性理论a| 日韩片之四级片| 久久精品欧美一区二区三区麻豆| 久久先锋影音av鲁色资源网| 国产日韩高清在线| 中文字幕视频一区| 亚洲成人激情自拍| 极品美女销魂一区二区三区免费| 夫妻av一区二区| 欧美日韩综合在线免费观看| 欧美一级片免费看| 国产精品三级av| 亚洲一区二区综合| 久久精品国产久精国产爱| 国产传媒一区在线| 欧美伊人久久久久久午夜久久久久| 欧美亚洲综合另类| 久久中文娱乐网| 一区二区欧美精品| 精品制服美女丁香| 99在线精品免费| 日韩写真欧美这视频| 国产精品久久久久久久浪潮网站 | 中文字幕久久午夜不卡| 亚洲免费观看高清完整版在线观看 | 亚洲国产精品天堂| 国内外成人在线| 精品视频色一区| 国产精品毛片a∨一区二区三区| 天天影视涩香欲综合网| 国产精品一区二区你懂的| 欧美在线播放高清精品| 久久久精品欧美丰满| 香蕉影视欧美成人| 成人免费视频网站在线观看| 日韩丝袜情趣美女图片| 亚洲精品乱码久久久久久久久| 免费看欧美女人艹b| 91丝袜国产在线播放| 久久亚洲综合色一区二区三区| 亚洲一区二三区| 99国产精品久| 精品成人一区二区三区| 亚洲一卡二卡三卡四卡无卡久久 | 蜜臀av性久久久久av蜜臀妖精| 不卡的av在线播放| 26uuu色噜噜精品一区二区| 亚洲一卡二卡三卡四卡无卡久久| 成人av网站在线| 久久免费美女视频| 日本最新不卡在线| 色综合天天综合网国产成人综合天 | 成人免费高清在线| 精品裸体舞一区二区三区| 香蕉久久一区二区不卡无毒影院| 99精品视频在线免费观看| 久久久久久久久久久99999| 另类小说综合欧美亚洲| 91精品国产91久久综合桃花| 亚洲一区免费在线观看| 99久久久国产精品免费蜜臀| 国产日韩影视精品| 国内欧美视频一区二区| 欧美www视频| 麻豆精品新av中文字幕| 欧美视频一区二区在线观看| 亚洲精品国久久99热| 91免费国产在线观看| 成人欧美一区二区三区1314| 丰满岳乱妇一区二区三区| 国产亚洲欧洲997久久综合| 高清国产一区二区|