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

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

?? asa_cg.cpp

?? 數學計算程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
   ========================================================================= */int asa_descent /*  return:                      -5 (ginorm < tau2*pgnorm without hitting boundary)                      -4 (ginorm >=tau2*pgnorm, many x components hit boundary)                      -3 (ginorm >=tau2*pgnorm, one x component hits boundary)                      -2 (function value became nan)                      -1 (starting function value is nan)                       0 (convergence tolerance satisfied)                       1 (change in func <= feps*|f|)                       2 (total iterations exceeded maxit)                       3 (slope always negative in line search)                       4 (number secant iterations exceed nsecant)                       5 (search direction not a descent direction)                       6 (line search fails in initial interval)                       7 (line search fails during bisection)                       8 (line search fails during interval update)                       9 (debugger is on and the function value increases)*/(    asa_com *Com){    int     i, iter, j, maxit, n, n5, nfree, nf, ng, nrestart,            status ;    double  delta2, eta_sq, Qk, Ck, pgnorm, ginorm,            f, ftemp, gnorm, xnorm, gnorm2, dnorm2, denom,            t, t1, t2, t3, t4, t5, dphi, dphi0, alpha, talpha,            xj, gj, xg, xp, sts, sty, sk,            yk, ykyk, ykgk, dkyk, yk1, yk2, yk3, yk4, yk5, beta,            *x, *d, *g, *xtemp, *gtemp, *lo, *hi, *pg ;    asacg_parm *Parm ;    asa_parm *asaParm ;/* initialization */    x = Com->x ;    lo = Com->lo ;    hi = Com->hi ;    n = Com->n ;    d = Com->d ;    g = Com->g ;    xtemp = Com->xtemp ;    gtemp = Com->gtemp ;    pg = Com->pg ;    nfree = Com->nfree ;    nf = Com->nf ;    ng = Com->ng ;    pgnorm = Com->pgnorm ;    ginorm = Com->ginorm ;    Parm = Com->cgParm ;    asaParm = Com->asaParm ;    if ( Parm->PrintLevel >= 1 )    {        printf ("Dimension in CG, nfree = %i\n", nfree) ;    }    /* the conjugate gradient algorithm is restarted every nrestart iteration */    nrestart = (INT32) (((double) nfree)*Parm->restart_fac) ;    /* abort when number of iterations reaches maxit in one pass through cg */    if ( Parm->maxit_fac == INF ) Com->cgmaxit = maxit = INT_INF ;    else Com->cgmaxit = maxit = (INT32) (((double) n)*Parm->maxit_fac) ;    n5 = nfree % 5 ;    f = Com->f ;    Ck = ZERO ;    Qk = ZERO ;/* initial function and gradient evaluations, initial direction */    Com->f0 = f + f ;    xnorm = asa_max (x, nfree) ;    gnorm = ZERO ;    gnorm2 = ZERO ;    for (i = 0; i < n5; i++)    {        t = g [i] ;        d [i] = -t ;        gnorm2 += t*t ;        if ( gnorm < fabs (t) ) gnorm = fabs (t) ;    }    for (; i < nfree;)    {        t1 = g [i] ;        d [i] = -t1 ;        if ( gnorm < fabs (t1) ) gnorm = fabs (t1) ;        i++ ;        t2 = g [i] ;        d [i] = -t2 ;        if ( gnorm < fabs (t2) ) gnorm = fabs (t2) ;        i++ ;        t3 = g [i] ;        d [i] = -t3 ;        if ( gnorm < fabs (t3) ) gnorm = fabs (t3) ;        i++ ;        t4 = g [i] ;        d [i] = -t4 ;        if ( gnorm < fabs (t4) ) gnorm = fabs (t4) ;        i++ ;        t5 = g [i] ;        d [i] = -t5 ;        if ( gnorm < fabs (t5) ) gnorm = fabs (t5) ;        i++ ;        gnorm2 += t1*t1 + t2*t2 + t3*t3 + t4*t4 + t5*t5 ;    }    /* check that starting function value is nan */    if ( f != f )    {        status = -1 ;        goto Exit ;    }    if ( Parm->PrintLevel >= 2 )    {        printf ("iter: %5i f = %14.6e pgnorm = %14.6e ginorm = %14.6e\n\n",          (int) 0, f, pgnorm, ginorm) ;    }    dphi0 = -gnorm2 ;    delta2 = 2*Parm->delta - ONE ;    eta_sq = Parm->eta*Parm->eta ;    alpha = Parm->step ;    if ( alpha == ZERO )    {        alpha = Parm->psi0*xnorm/gnorm ;        if ( xnorm == ZERO )        {            if ( f != ZERO ) alpha = Parm->psi0*fabs (f)/gnorm2 ;            else             alpha = ONE ;        }    }/*  start the conjugate gradient iteration    alpha starts as old step, ends as final step for current iteration    f is function value for alpha = 0    Com->QuadOK = TRUE means that a quadratic step was taken */    for (iter = 1; iter <= maxit; iter++)    {        Com->QuadOK = FALSE ;        alpha = Parm->psi2*alpha ;        asa_maxstep (x, d, Com) ;        if ( Parm->QuadStep )        {            if ( f != ZERO ) t = fabs ((f-Com->f0)/f) ;            else             t = ONE ;            if ( t > Parm->QuadCutOff )       /* take provisional step talpha */            {                talpha = Parm->psi1*alpha ;                if ( Com->minstep >= asaParm->parm1*talpha )                {                    talpha = MIN (talpha, asaParm->parm2*Com->minstep) ;                    asa_step (xtemp, x, d, talpha, nfree) ;                    /*provisional function value*/                    ftemp = asa_f (xtemp, Com) ;                    /* check if function value is nan */                    if ( ftemp != ftemp ) /* reduce stepsize */                    {                        for (i = 0; i < Parm->nexpand; i++)                        {                            talpha /= Parm->rho ;                            asa_step (xtemp, x, d, talpha, nfree) ;                            ftemp = asa_f (xtemp, Com) ;                            if ( ftemp == ftemp ) break ;                        }                        if ( i == Parm->nexpand )                        {                            status = -2 ;                            goto Exit ;                        }                    }                    if ( ftemp < f )              /* check if quadstep > 0 */                    {                       denom = TWO*(((ftemp-f)/talpha)-dphi0) ;                       if ( denom > ZERO )    /* try a quadratic fit step */                       {                           Com->QuadOK = TRUE ;                           alpha = -dphi0*talpha/denom ;                       }                    }                }            }        }        Com->f0 = f ;                          /* f0 saved as prior value */        if ( Parm->PrintLevel >= 3 )        {            printf ("minstep =%14.6e, maxstep =%14.6e \n",                     Com->minstep, Com->maxstep) ;            printf ("QuadOK: %2i initial a: %14.6e f0: %14.6e dphi0: %14.6e\n",                    Com->QuadOK, alpha, Com->f0, dphi0) ;            if ( (alpha > Com->minstep) && Com->QuadOK )            {                printf("Quadratic step > minstep to boundary\n") ;            }        }        /* parameters in Wolfe, approximate Wolfe conditions, and in update */        Qk = Parm->Qdecay*Qk + ONE ;        Ck = Ck + (fabs (f) - Ck)/Qk ;        /* average cost magnitude */        if ( Parm->PertRule ) Com->fpert = f + Parm->eps*Ck ;        else                  Com->fpert = f + Parm->eps ;        Com->wolfe_hi = Parm->delta*dphi0 ;        Com->wolfe_lo = Parm->sigma*dphi0 ;        Com->awolfe_hi = delta2*dphi0 ;        Com->alpha = alpha ;/* either double prior step or quadratic fit step */        Com->f = f ;        if ( Com->AWolfe )                  /* approximate Wolfe line search*/        {            if ( Parm->PrintLevel >= 3 )            {                printf ("Perform approximate Wolfe line search\n") ;            }            status = asa_line (dphi0, Com) ;        }        else                                  /* ordinary Wolfe line search */        {            if ( Parm->PrintLevel >= 3 )            {                 printf ("Perform ordinary Wolfe line search\n") ;            }            status = asa_lineW (dphi0, Com) ;        }        /* if ordinary Wolfe line search fails, possibly try approximate           Wolfe line search*/        if ( (status > 0) && !Com->AWolfe && (Parm->AWolfeFac > ZERO) )        {            Com->AWolfe = TRUE ;            if ( Parm->PrintLevel >= 3 )            {                printf ("Ordinary Wolfe line search fails, "                        "try approximate Wolfe line search\n") ;            }            status = asa_line (dphi0, Com) ;        }        alpha = Com->alpha ;        f = Com->f ;        dphi = Com->df ;        if ( (status > 0) || (status == -1) || (status == -2) ) goto Exit ;        /*Test for convergence to within machine epsilon          [set feps to zero to remove this test] */        if ( (-alpha*dphi0 <= Parm->feps*fabs (f)) && (status == 0) )        {            status = 1 ;            goto Exit ;        }        /* compute beta, yk2, gnorm, gnorm2, dnorm2, update x and g */        if ( iter % nrestart != 0 )        {            ginorm = ZERO ;            pgnorm = ZERO ;            for (j = 0; j < nfree; j++)            {                xj = xtemp [j] ;                gj = gtemp [j] ;                xg = xj - gj ;                if      ( xg > hi [j] ) xp = hi [j] - xj ;                else if ( xg < lo [j] ) xp = xj - lo [j] ;                else                    xp = fabs (gj) ;                pgnorm = MAX (pgnorm, xp) ;                ginorm = MAX (ginorm, fabs (gj)) ;            }            for (; j < n; j++)            {                xj = x [j] ;                gj = gtemp [j] ;                xg = xj - gj ;                if      ( xg > hi [j] ) xp = hi [j] - xj ;                else if ( xg < lo [j] ) xp = xj - lo [j] ;                else                    xp = fabs (gj) ;                pgnorm = MAX (pgnorm, xp) ;            }            if ( asa_tol (pgnorm, Com) )            {                status = 0 ;                for (j = 0; j < nfree; j++)                {                    xj = xtemp [j] ;                    x [j] = xj ;                    gj = gtemp [j] ;                    xg = xj - gj ;                    g [j] = gj ;                    if      ( xg > hi [j] ) pg [j] = hi [j] - xj ;                    else if ( xg < lo [j] ) pg [j] = lo [j] - xj ;                    else                    pg [j] = -gj ;                }                for (; j < n; j++)                {                    xj = x [j] ;                    gj = gtemp [j] ;                    xg = xj - gj ;                    g [j] = gj ;                    if      ( xg > hi [j] ) pg [j] = hi [j] - xj ;                    else if ( xg < lo [j] ) pg [j] = lo [j] - xj ;                    else                    pg [j] = -gj ;                }                goto Exit1 ;            }            if ( ginorm < pgnorm*Com->tau2 ) status = -5 ;            if ( status < -2 )            {                sts = ZERO ;                sty = ZERO ;                for (j = 0; j < nfree; j++)                {                    t = xtemp[j] ;                    sk = t - x [j] ;                    x [j] = t ;                    sts += sk*sk ;                    t = gtemp [j] ;                    sty += sk*(t-g [j]) ;                    g [j] = t ;                }                Com->sts = sts ;                Com->sty = sty ;                goto Exit ;            }            asa_copy (x, xtemp, nfree) ;            dnorm2 = ZERO ;            for (j = 0; j < n5; j++) dnorm2 = dnorm2 + d [j]*d [j] ;            for (; j < nfree; j += 5)            {                dnorm2 = dnorm2 + d [j]*d [j] + d [j+1]*d [j+1]                                              + d [j+2]*d [j+2]                                              + d [j+3]*d [j+3]                                              + d [j+4]*d [j+4] ;            }            ykyk = ZERO ;            ykgk = ZERO ;            for (j = 0; j < n5; j++)            {                t = gtemp [j] ;                yk = t - g [j] ;                ykyk += yk*yk ;                ykgk += yk*t ;                g [j] = t ;            }            for (j = n5; j < nfree; )            {                t1 = gtemp [j] ;                yk1 = t1 - g [j] ;                g [j] = t1 ;                j++ ;                t2 = gtemp [j] ;                yk2 = t2 - g [j] ;                g [j] = t2 ;                j++ ;                t3 = gtemp [j] ;                yk3 = t3 - g [j] ;                g [j] = t3 ;                j++ ;                t4 = gtemp [j] ;                yk4 = t4 - g [j] ;                g [j] = t4 ;                j++ ;                t5 = gtemp [j] ;                yk5 = t5 - g [j] ;                g [j] = t5 ;                j++ ;                ykyk += yk1*yk1 + yk2*yk2 + yk3*yk3 + yk4*yk4 + yk5*yk5 ;                ykgk += yk1*t1 + yk2*t2 + yk3*t3 + yk4*t4 + yk5*t5 ;            }            dkyk = dphi - dphi0 ;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草国产精品97视觉盛宴| 国产在线播放一区二区三区| 日韩一级免费观看| av激情成人网| 精品一区二区免费在线观看| 亚洲综合色视频| 日本一区二区三区在线不卡| 777欧美精品| 在线观看亚洲一区| 福利一区在线观看| 美女视频第一区二区三区免费观看网站| 国产精品久线在线观看| 欧美精品一区二区精品网| 色综合天天性综合| 成人一级黄色片| 久久黄色级2电影| 午夜欧美电影在线观看| 亚洲欧美另类在线| 国产精品久久久久久亚洲伦| 日韩精品中午字幕| 欧美老肥妇做.爰bbww| 91看片淫黄大片一级在线观看| 国产乱子轮精品视频| 免费观看91视频大全| 日韩精品电影在线| 亚洲午夜一二三区视频| 国产精品不卡在线| 国产精品美女久久久久久久| 久久九九久久九九| 精品成人佐山爱一区二区| 制服丝袜一区二区三区| 777xxx欧美| 欧美狂野另类xxxxoooo| 9191久久久久久久久久久| 欧美日韩视频一区二区| 欧美日韩高清一区二区| 精品视频1区2区3区| 色婷婷亚洲婷婷| 色成年激情久久综合| 色先锋久久av资源部| 一本色道a无线码一区v| 日本高清成人免费播放| 91蜜桃视频在线| 欧美综合一区二区三区| 欧美三区在线观看| 4438x亚洲最大成人网| 欧美一三区三区四区免费在线看| 91精品免费在线观看| 日韩欧美一级精品久久| 久久亚洲私人国产精品va媚药| 久久综合精品国产一区二区三区| 欧美一区二区啪啪| 欧美变态tickling挠脚心| 久久久久久久性| 国产精品视频免费看| 亚洲图片欧美激情| 亚洲一区二区三区四区在线免费观看 | 久久国产精品色| 国产精品一区二区你懂的| 91麻豆视频网站| 91久久精品一区二区| 欧美日韩精品一区视频| 欧美大片一区二区三区| 国产婷婷精品av在线| 亚洲日本中文字幕区| 日韩av电影免费观看高清完整版| 久久精品国产澳门| 成人手机电影网| 欧美视频日韩视频| 日韩欧美黄色影院| 国产精品乱码一区二三区小蝌蚪| 亚洲欧美国产毛片在线| 日韩电影在线观看网站| 国产传媒欧美日韩成人| 欧美午夜免费电影| 久久人人97超碰com| 自拍偷在线精品自拍偷无码专区| 亚洲午夜久久久久久久久久久| 久久99精品国产| 91视频.com| 91精品国产福利在线观看| 欧美国产欧美亚州国产日韩mv天天看完整| 中文字幕一区日韩精品欧美| 日韩和欧美的一区| 成人精品电影在线观看| 制服丝袜一区二区三区| 国产精品乱子久久久久| 蜜桃视频一区二区三区| 色综合中文字幕| 久久品道一品道久久精品| 夜夜嗨av一区二区三区网页| 国产一区二区电影| 在线不卡免费欧美| 国产精品剧情在线亚洲| 久久精品国产精品亚洲综合| 91久久免费观看| 久久精品夜夜夜夜久久| 午夜精品久久久久久久99樱桃| 国产mv日韩mv欧美| 欧美电影免费观看高清完整版在线| 中文字幕在线不卡一区| 狠狠色综合播放一区二区| 欧美日韩亚洲国产综合| 国产精品人妖ts系列视频| 理论片日本一区| 欧美精品一二三四| 伊人色综合久久天天| 高清国产午夜精品久久久久久| 欧美一区二区免费视频| 亚洲综合成人网| 99视频一区二区三区| 精品国产凹凸成av人网站| 亚洲国产日韩在线一区模特| 99视频在线观看一区三区| 久久久精品人体av艺术| 男人的天堂久久精品| 在线欧美日韩国产| √…a在线天堂一区| 国产乱码精品1区2区3区| 欧美一区二区视频在线观看| 亚洲高清一区二区三区| 一本久久a久久精品亚洲| 欧美极品另类videosde| 国产成人亚洲综合a∨婷婷| 日韩免费一区二区| 日本aⅴ亚洲精品中文乱码| 欧美福利一区二区| 亚洲成人午夜电影| 色婷婷香蕉在线一区二区| 亚洲日本丝袜连裤袜办公室| 国产成人激情av| 国产欧美视频在线观看| 国产剧情一区二区| 久久久一区二区| 东方aⅴ免费观看久久av| 久久久精品国产免大香伊| 91 com成人网| 日本人妖一区二区| 欧美第一区第二区| 国内精品免费**视频| 久久综合资源网| 国产精品一区二区黑丝| 欧美国产精品一区二区三区| 国产成人自拍高清视频在线免费播放| 久久婷婷国产综合精品青草| 国产精品影视在线观看| 欧美国产一区在线| www.欧美日韩| 亚洲亚洲精品在线观看| 91精品国产综合久久久蜜臀粉嫩| 日韩av二区在线播放| 精品国产百合女同互慰| 国产91丝袜在线播放0| 综合欧美一区二区三区| 欧美亚洲国产怡红院影院| 天天综合日日夜夜精品| 日韩欧美国产综合一区| 国产v日产∨综合v精品视频| 日韩理论片一区二区| 欧美日韩精品福利| 精品一区二区在线免费观看| 国产欧美在线观看一区| 91麻豆国产福利精品| 亚洲va欧美va国产va天堂影院| 日韩一区二区三区精品视频| 国产999精品久久久久久| 一区二区三区国产精华| 91精品久久久久久久99蜜桃| 国产精品一区专区| 亚洲综合视频在线| 亚洲精品一区二区三区精华液| 成人精品国产一区二区4080| 亚洲va欧美va国产va天堂影院| 精品国产百合女同互慰| 91麻豆6部合集magnet| 蜜桃一区二区三区四区| 国产精品国产三级国产三级人妇 | 国产原创一区二区| 中文字幕在线观看一区| 在线观看91精品国产麻豆| 国内成人自拍视频| 尤物av一区二区| 亚洲精品一区二区三区影院| 91网站黄www| 精油按摩中文字幕久久| 亚洲人成精品久久久久| 欧美成人乱码一区二区三区| 99精品视频一区二区| 精品一区精品二区高清| 一区二区三区加勒比av| 国产午夜精品一区二区三区四区 | 欧洲一区二区三区在线| 国产真实精品久久二三区| 亚洲黄色在线视频| 国产亚洲成aⅴ人片在线观看| 欧美色图片你懂的| 91丨porny丨户外露出| 国产精品资源在线| 人人超碰91尤物精品国产| 亚洲精选一二三|