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

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

?? lbfgs.c

?? Conditional Random Fields的訓練識別工具
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*  MeCab -- Yet Another Part-of-Speech and Morphological Analyzer  $Id: lbfgs.c 1528 2006-08-07 02:39:50Z taku $;  lbfgs.c was ported from the FORTRAN code of lbfgs.m to C  using f2c converter  http://www.ece.northwestern.edu/~nocedal/lbfgs.html  Software for Large-scale Unconstrained Optimization  L-BFGS is a limited-memory quasi-Newton code for unconstrained optimization.  The code has been developed at the Optimization Technology Center,  a joint venture of Argonne National Laboratory and Northwestern University.  Authors  Jorge Nocedal  References  - J. Nocedal. Updating Quasi-Newton Matrices with Limited Storage(1980),  Mathematics of Computation 35, pp. 773-782.  - D.C. Liu and J. Nocedal. On the Limited Memory Method for  Large Scale Optimization(1989),  Mathematical Programming B, 45, 3, pp. 503-528.*/#include <math.h>typedef int integer;typedef unsigned int uinteger;typedef char *address;typedef short int shortint;typedef float real;typedef double doublereal;typedef int logical;typedef short int shortlogical;typedef char logical1;typedef char integer1;#define TRUE_ (1)#define FALSE_ (0)#define abs(x) ((x) >= 0 ? (x) : -(x))#define min(a,b) ((a) <= (b) ? (a) : (b))#define max(a,b) ((a) >= (b) ? (a) : (b))/* Common Block Declarations */struct lb3_1_ {  integer mp, lp;  doublereal gtol, stpmin, stpmax;};/* Table of constant values */static struct lb3_1_ lb3_1;static integer c__1 = 1;static doublereal ddot_();static int daxpy_();static int mcsrch_();static int mcstep_();/*     ---------------------------------------------------------------------- *//*     This file contains the LBFGS algorithm and supporting routines *//*     **************** *//*     LBFGS SUBROUTINE *//*     **************** *//* Subroutine */ int lbfgs(n, m, x, f, g, diagco, diag, iprint, eps, xtol, w, iflag)     integer *n, *m;     doublereal *x, *f, *g;     integer *diagco;     doublereal *diag;     integer *iprint;     doublereal *eps, *xtol, *w;     integer *iflag;{  /* Initialized data */  static doublereal one = 1.0;  static doublereal zero = 0.0;  /* System generated locals */  integer i__1;  doublereal d__1;  /* Builtin functions */  double sqrt();  /* Local variables */  static doublereal beta;  static integer inmc;  static integer info, iscn, nfev, iycn, iter;  static doublereal ftol;  static integer nfun, ispt, iypt, i__, bound;  static doublereal gnorm;  static integer point;  static doublereal xnorm;  static integer cp;  static doublereal sq, yr, ys;  static logical finish;  static doublereal yy;  static integer maxfev;  static integer npt;  static doublereal stp, stp1;  lb3_1.mp = 6;  lb3_1.lp = 6;  lb3_1.gtol = .9;  lb3_1.stpmin = 1e-20;  lb3_1.stpmax = 1e20;  /* Parameter adjustments */  --diag;  --g;  --x;  --w;  --iprint;  /* Function Body */  /*     INITIALIZE */  /*     ---------- */  if (*iflag == 0) {    goto L10;  }  switch((int)*iflag) {  case 1:  goto L172;  case 2:  goto L100;  } L10:  iter = 0;  if (*n <= 0 || *m <= 0) {    goto L196;  }  if (lb3_1.gtol <= 1e-4) {    if (lb3_1.lp > 0) {}    lb3_1.gtol = .9;  }  nfun = 1;  point = 0;  finish = FALSE_;  if (*diagco != 0) {    i__1 = *n;    for (i__ = 1; i__ <= i__1; ++i__) {      /* L30: */      if (diag[i__] <= zero) {        goto L195;      }    }  } else {    i__1 = *n;    for (i__ = 1; i__ <= i__1; ++i__) {      /* L40: */      diag[i__] = 1.;    }  }  ispt = *n + (*m << 1);  iypt = ispt + *n * *m;  i__1 = *n;  for (i__ = 1; i__ <= i__1; ++i__) {    /* L50: */    w[ispt + i__] = -g[i__] * diag[i__];  }  gnorm = sqrt(ddot_(n, &g[1], &c__1, &g[1], &c__1));  stp1 = one / gnorm;  /*     PARAMETERS FOR LINE SEARCH ROUTINE */  ftol = 1e-4;  maxfev = 20;  /*    if (iprint[1] >= 0) {        lb1_(&iprint[1], &iter, &nfun, &gnorm, n, m, &x[1], f, &g[1], &stp, &        finish);        } */  /*    -------------------- */  /*     MAIN ITERATION LOOP */  /*    -------------------- */ L80:  ++iter;  info = 0;  bound = iter - 1;  if (iter == 1) {    goto L165;  }  if (iter > *m) {    bound = *m;  }  ys = ddot_(n, &w[iypt + npt + 1], &c__1, &w[ispt + npt + 1], &c__1);  if (*diagco == 0) {    yy = ddot_(n, &w[iypt + npt + 1], &c__1, &w[iypt + npt + 1], &c__1);    i__1 = *n;    for (i__ = 1; i__ <= i__1; ++i__) {      /* L90: */      diag[i__] = ys / yy;    }  } else {    *iflag = 2;    return 0;  } L100:  if (*diagco != 0) {    i__1 = *n;    for (i__ = 1; i__ <= i__1; ++i__) {      /* L110: */      if (diag[i__] <= zero) {        goto L195;      }    }  }  /*     COMPUTE -H*G USING THE FORMULA GIVEN IN: Nocedal, J. 1980, */  /*     "Updating quasi-Newton matrices with limited storage", */  /*     Mathematics of Computation, Vol.24, No.151, pp. 773-782. */  /*     --------------------------------------------------------- */  cp = point;  if (point == 0) {    cp = *m;  }  w[*n + cp] = one / ys;  i__1 = *n;  for (i__ = 1; i__ <= i__1; ++i__) {    /* L112: */    w[i__] = -g[i__];  }  cp = point;  i__1 = bound;  for (i__ = 1; i__ <= i__1; ++i__) {    --cp;    if (cp == -1) {      cp = *m - 1;    }    sq = ddot_(n, &w[ispt + cp * *n + 1], &c__1, &w[1], &c__1);    inmc = *n + *m + cp + 1;    iycn = iypt + cp * *n;    w[inmc] = w[*n + cp + 1] * sq;    d__1 = -w[inmc];    daxpy_(n, &d__1, &w[iycn + 1], &c__1, &w[1], &c__1);    /* L125: */  }  i__1 = *n;  for (i__ = 1; i__ <= i__1; ++i__) {    /* L130: */    w[i__] = diag[i__] * w[i__];  }  i__1 = bound;  for (i__ = 1; i__ <= i__1; ++i__) {    yr = ddot_(n, &w[iypt + cp * *n + 1], &c__1, &w[1], &c__1);    beta = w[*n + cp + 1] * yr;    inmc = *n + *m + cp + 1;    beta = w[inmc] - beta;    iscn = ispt + cp * *n;    daxpy_(n, &beta, &w[iscn + 1], &c__1, &w[1], &c__1);    ++cp;    if (cp == *m) {      cp = 0;    }    /* L145: */  }  /*     STORE THE NEW SEARCH DIRECTION */  /*     ------------------------------ */  i__1 = *n;  for (i__ = 1; i__ <= i__1; ++i__) {    /* L160: */    w[ispt + point * *n + i__] = w[i__];  }  /*     OBTAIN THE ONE-DIMENSIONAL MINIMIZER OF THE FUNCTION */  /*     BY USING THE LINE SEARCH ROUTINE MCSRCH */  /*     ---------------------------------------------------- */ L165:  nfev = 0;  stp = one;  if (iter == 1) {    stp = stp1;  }  i__1 = *n;  for (i__ = 1; i__ <= i__1; ++i__) {    /* L170: */    w[i__] = g[i__];  } L172:  mcsrch_(n, &x[1], f, &g[1], &w[ispt + point * *n + 1], &stp, &ftol, xtol,          &maxfev, &info, &nfev, &diag[1]);  if (info == -1) {    *iflag = 1;    return 0;  }  if (info != 1) {    goto L190;  }  nfun += nfev;  /*     COMPUTE THE NEW STEP AND GRADIENT CHANGE */  /*     ----------------------------------------- */  npt = point * *n;  i__1 = *n;  for (i__ = 1; i__ <= i__1; ++i__) {    w[ispt + npt + i__] = stp * w[ispt + npt + i__];    /* L175: */    w[iypt + npt + i__] = g[i__] - w[i__];  }  ++point;  if (point == *m) {    point = 0;  }  /*     TERMINATION TEST */  /*     ---------------- */  gnorm = sqrt(ddot_(n, &g[1], &c__1, &g[1], &c__1));  xnorm = sqrt(ddot_(n, &x[1], &c__1, &x[1], &c__1));  xnorm = max(1.,xnorm);  if (gnorm / xnorm <= *eps) {    finish = TRUE_;  }  /*    if (iprint[1] >= 0) {        lb1_(&iprint[1], &iter, &nfun, &gnorm, n, m, &x[1], f, &g[1], &stp, &        finish);        }*/  if (finish) {    *iflag = 0;    return 0;  }  goto L80;  /*     ------------------------------------------------------------ */  /*     END OF MAIN ITERATION LOOP. ERROR EXITS. */  /*     ------------------------------------------------------------ */ L190:  *iflag = -1;  return 0; L195:  *iflag = -2;  return 0; L196:  *iflag = -3;  return 0;} /* lbfgs_ *//*   ---------------------------------------------------------- *//* Subroutine */ static int daxpy_(n, da, dx, incx, dy, incy)     integer *n;     doublereal *da, *dx;     integer *incx;     doublereal *dy;     integer *incy;{  /* System generated locals */  integer i__1;  /* Local variables */  static integer i__, m, ix, iy, mp1;  /*     constant times a vector plus a vector. */  /*     uses unrolled loops for increments equal to one. */  /*     jack dongarra, linpack, 3/11/78. */  /* Parameter adjustments */  --dy;  --dx;  /* Function Body */  if (*n <= 0) {    return 0;  }  if (*da == 0.) {    return 0;  }  if (*incx == 1 && *incy == 1) {    goto L20;  }  /*        code for unequal increments or equal increments */  /*          not equal to 1 */  ix = 1;  iy = 1;  if (*incx < 0) {    ix =(-(*n) + 1) * *incx + 1;  }  if (*incy < 0) {    iy =(-(*n) + 1) * *incy + 1;  }  i__1 = *n;  for (i__ = 1; i__ <= i__1; ++i__) {    dy[iy] += *da * dx[ix];    ix += *incx;    iy += *incy;    /* L10: */  }  return 0;  /*        code for both increments equal to 1 */  /*        clean-up loop */ L20:  m = *n % 4;  if (m == 0) {    goto L40;  }  i__1 = m;  for (i__ = 1; i__ <= i__1; ++i__) {    dy[i__] += *da * dx[i__];    /* L30: */  }  if (*n < 4) {    return 0;  } L40:  mp1 = m + 1;  i__1 = *n;  for (i__ = mp1; i__ <= i__1; i__ += 4) {    dy[i__] += *da * dx[i__];    dy[i__ + 1] += *da * dx[i__ + 1];    dy[i__ + 2] += *da * dx[i__ + 2];    dy[i__ + 3] += *da * dx[i__ + 3];    /* L50: */  }  return 0;} /* daxpy_ *//*   ---------------------------------------------------------- */static doublereal ddot_(n, dx, incx, dy, incy)     integer *n;     doublereal *dx;     integer *incx;     doublereal *dy;     integer *incy;{  /* System generated locals */  integer i__1;  doublereal ret_val;  /* Local variables */  static integer i__, m;  static doublereal dtemp;  static integer ix, iy, mp1;  /*     forms the dot product of two vectors. */  /*     uses unrolled loops for increments equal to one. */  /*     jack dongarra, linpack, 3/11/78. */  /* Parameter adjustments */  --dy;  --dx;  /* Function Body */  ret_val = 0.;  dtemp = 0.;  if (*n <= 0) {    return ret_val;  }  if (*incx == 1 && *incy == 1) {    goto L20;  }  /*        code for unequal increments or equal increments */  /*          not equal to 1 */  ix = 1;  iy = 1;  if (*incx < 0) {    ix =(-(*n) + 1) * *incx + 1;  }  if (*incy < 0) {    iy =(-(*n) + 1) * *incy + 1;  }  i__1 = *n;  for (i__ = 1; i__ <= i__1; ++i__) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀久久99精品久久久画质超高清 | 精品久久久久久无| 日韩成人精品视频| 日韩欧美国产电影| 国产成人精品1024| 亚洲自拍与偷拍| 日韩你懂的电影在线观看| 免费在线成人网| 久久久一区二区三区| 99久久久精品免费观看国产蜜| 亚洲欧美日韩一区| www一区二区| 欧美日韩国产a| 91免费版在线看| 五月婷婷另类国产| 国产精品第一页第二页第三页| 欧美高清一级片在线| 成人av在线看| 成人亚洲精品久久久久软件| 日韩综合在线视频| 亚洲国产一区二区三区青草影视| 久久久久久一二三区| 91精品国产丝袜白色高跟鞋| 色哟哟欧美精品| av在线播放一区二区三区| 国产一区在线精品| 六月丁香综合在线视频| 亚洲妇熟xx妇色黄| 午夜av电影一区| 天天影视色香欲综合网老头| 国产精品短视频| 国产欧美一区二区三区鸳鸯浴 | 久久久久久亚洲综合影院红桃 | 成人精品视频.| 国产成人精品在线看| 国产成人午夜99999| 国产九色精品成人porny| 国产精品一区专区| 成人自拍视频在线观看| bt欧美亚洲午夜电影天堂| 国产69精品久久99不卡| 成人的网站免费观看| 99精品国产热久久91蜜凸| 欧美午夜电影一区| 欧美草草影院在线视频| 国产视频在线观看一区二区三区 | 欧美一区二区成人6969| 久久在线免费观看| 亚洲成人资源网| 欧美美女激情18p| 91久久奴性调教| 在线欧美小视频| 欧美在线观看视频一区二区| 久久久www成人免费无遮挡大片| 91尤物视频在线观看| 91精品国产免费| 久久久久久免费网| ●精品国产综合乱码久久久久 | 欧美天堂一区二区三区| 欧美刺激脚交jootjob| 中文字幕在线观看不卡视频| 丝袜国产日韩另类美女| 一本一本大道香蕉久在线精品| 欧美精品色综合| 亚洲三级久久久| 国产福利一区在线| 26uuu国产在线精品一区二区| 日韩经典中文字幕一区| 色偷偷成人一区二区三区91 | 白白色 亚洲乱淫| 国产午夜亚洲精品羞羞网站| 日韩成人精品在线观看| 欧美日韩精品福利| 亚洲电影在线免费观看| 一本一本久久a久久精品综合麻豆| 国产精品丝袜一区| 成人影视亚洲图片在线| 亚洲丝袜精品丝袜在线| 成人永久aaa| 亚洲黄色免费电影| 欧美日韩一区 二区 三区 久久精品| 亚洲色图20p| 欧美日韩视频在线观看一区二区三区| 亚洲欧洲精品一区二区精品久久久| 国产在线视频精品一区| 国产精品乱码妇女bbbb| 色婷婷综合激情| 久久精品av麻豆的观看方式| 26uuu亚洲| 91成人免费网站| 日本欧美在线观看| 精品久久久久久久久久久久久久久 | 美女mm1313爽爽久久久蜜臀| 久久久亚洲综合| 日本韩国欧美国产| 粉嫩一区二区三区性色av| 亚洲午夜在线视频| 国产精品久久久一区麻豆最新章节| 91麻豆精品一区二区三区| 久久国产精品99精品国产| 国产精品国产馆在线真实露脸| 91精品国产综合久久精品app| 国产最新精品免费| 亚洲一二三四久久| 国产精品丝袜在线| 久久久久久久精| 精品久久久久久无| 欧美一区二区三区四区视频| 在线精品视频一区二区三四| 国产乱码精品1区2区3区| 人人超碰91尤物精品国产| 亚洲精品国产无套在线观| 中文字幕制服丝袜成人av| 久久久精品中文字幕麻豆发布| 欧美日韩色一区| 欧美性猛交一区二区三区精品| caoporn国产一区二区| 成人午夜精品在线| 99热精品一区二区| 色婷婷久久一区二区三区麻豆| 99久久99久久精品国产片果冻| 国产乱妇无码大片在线观看| 国产一区二区精品久久91| 精品在线观看视频| 99在线精品观看| 欧美精品少妇一区二区三区| 91精品国产色综合久久ai换脸| 日韩欧美久久一区| 国产喷白浆一区二区三区| 亚洲国产精品av| 亚洲乱码中文字幕综合| 亚洲h在线观看| 久久国产精品99精品国产 | 欧美精品一区二区三区蜜桃| 国产精品久久久久久户外露出 | 亚洲永久免费视频| 久久精品国产色蜜蜜麻豆| 成人高清免费观看| 欧美日韩视频第一区| 久久久久9999亚洲精品| 亚洲女人的天堂| 狠狠色狠狠色综合日日91app| 99久久综合精品| 国产亚洲一二三区| 调教+趴+乳夹+国产+精品| av一本久道久久综合久久鬼色| 欧美亚洲动漫精品| 亚洲色欲色欲www| 成人小视频在线| 欧美一级在线免费| 亚洲1区2区3区4区| 色视频成人在线观看免| 国产精品初高中害羞小美女文| 日韩av电影免费观看高清完整版在线观看| 国产一区二区久久| 精品国产91乱码一区二区三区| 亚洲高清在线视频| 欧美性一级生活| 亚洲一卡二卡三卡四卡五卡| 91蝌蚪porny九色| 亚洲免费高清视频在线| 国产黑丝在线一区二区三区| 精品剧情v国产在线观看在线| 蜜臀va亚洲va欧美va天堂| 欧美r级电影在线观看| 青青草原综合久久大伊人精品优势| 欧美疯狂性受xxxxx喷水图片| 视频一区国产视频| 久久免费视频色| 国产成人精品影院| 亚洲国产日韩在线一区模特| 欧美日本国产一区| 国产一区二区三区不卡在线观看| 久久精品免费在线观看| 成人午夜视频网站| 日韩福利视频导航| 国产免费久久精品| 3atv一区二区三区| 国产麻豆精品在线观看| 一区二区三区国产豹纹内裤在线 | 欧美日韩国产精品成人| 日韩中文字幕麻豆| 亚洲欧美偷拍卡通变态| 91精品国产高清一区二区三区 | 97精品国产97久久久久久久久久久久 | 精品人伦一区二区色婷婷| 国产成人精品亚洲日本在线桃色| 亚洲另类春色校园小说| 国产亚洲精品aa| 91精品婷婷国产综合久久| www.日本不卡| 丁香婷婷综合网| 久久99蜜桃精品| 美美哒免费高清在线观看视频一区二区| 国产精品婷婷午夜在线观看| 26uuu国产在线精品一区二区| 欧美一区二区三级| 欧美日韩精品二区第二页| 色8久久精品久久久久久蜜| www.日本不卡|