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

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

?? nonlinminm.nc

?? 無線傳感器網絡中的節點定位算法。詳見ReadMe文件。在TinyOS上實現的節點定位算法。
?? NC
字號:
/** * Non-linear minimization module * David Moore <dcm@csail.mit.edu> * * This module provides non-linear minimization of an arbitrary n-dimensional * function using the Polak-Ribiere conjugate gradient method.  This is * similar to the straightforward steepest descent method, but is more robust. * * The code herein was based on the reference implementation provided by * _Numerical Recipes in C: The Art of Scientific Computing_ pp. 420-425 * (ISBN 0-521-43108-5). * * * Copyright (C) 2004  Massachusetts Institute of Technology * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */module NonLinMinM {    provides {        interface NonLinMin[uint8_t id];    }}implementation {    void dlinmin(uint8_t id, float p[], float xi[], int n, float * fret);    float mnbrak(uint8_t id, float p[], float xi[], float * ax, float * bx,            float * cx, float * fp);    float dbrent(uint8_t id, float p[], float xi[], float ax, float bx, float cx,            float tol, float * xmin, float * fx);    default event float NonLinMin.Func[uint8_t id](float p[], float x,            float xi[])    {        return 0.0;    }    default event float NonLinMin.DFunc[uint8_t id](float p[], float x,            float xi[], float df[])    {        return 0.0;    }#define EPS 0.1#define ITMAX   200    command void NonLinMin.FindMin[uint8_t id](float p[], int n, float ftol,            float * fret, float g[], float h[], float xi[])    {        int j, its;        float gg, gam, fp, dgg;                *fret = fp = signal NonLinMin.Func[id](p, 0, NULL);        signal NonLinMin.DFunc[id](p, 0, NULL, xi);        for (j=0; j<n; j++) {            g[j] = -xi[j];            xi[j] = h[j] = g[j];        }        for (its=0; its<ITMAX; its++) {            dlinmin(id, p, xi, n, fret);            if (2.0 * fabs(*fret-fp) <= ftol*(fabs(*fret)+fabs(fp)+EPS))                return;            fp = *fret;            signal NonLinMin.DFunc[id](p, 0, NULL, xi);            dgg = gg = 0.0;            for (j=0; j<n; j++) {                gg += g[j]*g[j];                dgg += (xi[j]+g[j])*xi[j];            }            if (gg == 0.0)                return;            gam = dgg/gg;            for (j=0; j<n; j++) {                g[j] = -xi[j];                xi[j] = h[j] = g[j] + gam*h[j];            }        }        UARTOutput(OUT_ERROR, "FindMin: Too many iterations\n");    }#define TOL 2.0e-2    void dlinmin(uint8_t id, float p[], float xi[], int n, float * fret)    {        int j;        float xx, xmin, bx, ax;        *fret = mnbrak(id, p, xi, &ax, &xx, &bx, fret);        *fret = dbrent(id, p, xi, ax, xx, bx, TOL, &xmin, fret);        for (j=0; j<n; j++) {            p[j] += xmin*xi[j];        }    }#define SWAP(a,b)   do { dum=(a); (a)=(b); (b)=dum; } while(0)#define SIGN(a,b)   ((b>=0)?fabs(a):-fabs(a))#define FMAX(a,b)   ((a>b)?a:b)#define GOLD 1.618034#define GLIMIT  100.0#define TINY    1.0e-20#define ZEPS    1.0e-10        float mnbrak(uint8_t id, float p[], float xi[], float * ax, float * bx,            float * cx, float * fp)    {        float ulim, u, r, q, fu, dum;        float fa, fb, fc;        *ax = 0.0;        *bx = 1.0;        if (fp)            fa = *fp;        else            fa = signal NonLinMin.Func[id](p, 0, NULL);        fb = signal NonLinMin.Func[id](p, *bx, xi);        if (fb > fa) {            SWAP(*ax, *bx);            SWAP(fb, fa);        }        *cx = (*bx)+GOLD*(*bx-*ax);        fc = signal NonLinMin.Func[id](p, *cx, xi);        while (fb > fc) {            r = (*bx-*ax)*(fb-fc);            q = (*bx-*cx)*(fb-fa);            u = (*bx)-((*bx-*cx)*q - (*bx-*ax)*r)/(2.0*SIGN(FMAX(fabs(q-r),TINY),q-r));            ulim = (*bx)+GLIMIT*(*cx-*bx);            if ((*bx-u)*(u-*cx) > 0.0) {                fu = signal NonLinMin.Func[id](p, u, xi);                if (fu < fc) {                    *ax = *bx;                    *bx = u;                    return fu;                }                else if (fu > fb) {                    *cx = u;                    return fb;                }                u = *cx + GOLD*(*cx-*bx);                fu = signal NonLinMin.Func[id](p, u, xi);            }            else if ((*cx-u)*(u-ulim) > 0.0) {                fu = signal NonLinMin.Func[id](p, u, xi);                if (fu < fc) {                    *bx = *cx;                    *cx = u;                    u = *cx + GOLD*(*cx-*bx);                    fb = fc;                    fc = fu;                    fu = signal NonLinMin.Func[id](p, u, xi);                }            }            else if ((u-ulim)*(ulim-*cx) >= 0.0) {                u = ulim;                fu = signal NonLinMin.Func[id](p, u, xi);            }            else {                u = *cx + GOLD*(*cx-*bx);                fu = signal NonLinMin.Func[id](p, u, xi);            }            *ax = *bx;            *bx = *cx;            *cx = u;            fa = fb;            fb = fc;            fc = fu;        }        return fb;    }    float dbrent(uint8_t id, float p[], float xi[], float ax, float bx, float cx,            float tol, float * xmin, float * fbx)    {        int iter, ok1, ok2;        float a, b, d=0, d1, d2, du, dv, dw, dx, e=0.0;        float fu, fv, fw, fx, olde, tol1, tol2, u, u1, u2, v, w, x, xm;        a = (ax < cx ? ax : cx);        b = (ax > cx ? ax : cx);        x = w = v = bx;        if (fbx)            fw = fv = fx = *fbx;        else            fw = fv = fx = signal NonLinMin.Func[id](p, x, xi);        dw = dv = dx = signal NonLinMin.DFunc[id](p, x, xi, NULL);        for (iter = 0; iter < ITMAX; iter++) {            xm = 0.5*(a+b);            tol1 = tol*fabs(x)+ZEPS;            tol2 = 2.0*tol1;            if (fabs(x-xm) <= (tol2-0.5*(b-a))) {                *xmin = x;                return fx;            }            if (fabs(e) > tol1) {                d1 = 2.0*(b-a);                d2 = d1;                if (dw != dx) d1=(w-x)*dx/(dx-dw);                if (dv != dx) d2=(v-x)*dx/(dx-dv);                u1 = x+d1;                u2 = x+d2;                ok1 = (a-u1)*(u1-b) > 0.0 && dx*d1 <= 0.0;                ok2 = (a-u2)*(u2-b) > 0.0 && dx*d2 <= 0.0;                olde = e;                e = d;                if (ok1 || ok2) {                    if (ok1 && ok2)                        d = (fabs(d1) < fabs(d2) ? d1 : d2);                    else if (ok1)                        d = d1;                    else                        d = d2;                    if (fabs(d) <= fabs(0.5*olde)) {                        u = x+d;                        if (u-a < tol2 || b-u < tol2)                            d = SIGN(tol1, xm-x);                    }                    else {                        d = 0.5*(e=(dx >= 0.0 ? a-x : b-x));                    }                }                else {                    d = 0.5*(e=(dx >= 0.0 ? a-x : b-x));                }            }            else {                d = 0.5*(e=(dx >= 0.0 ? a-x : b-x));            }            if (fabs(d) >= tol1) {                u = x+d;                fu = signal NonLinMin.Func[id](p, u, xi);            }            else {                u = x+SIGN(tol1, d);                fu = signal NonLinMin.Func[id](p, u, xi);                if (fu > fx) {                    *xmin = x;                    return fx;                }            }            du = signal NonLinMin.DFunc[id](p, u, xi, NULL);            if (fu <= fx) {                if (u >= x) a=x; else b=x;                v = w;                fv = fw;                dv = dw;                w = x;                fw = fx;                dw = dx;                x = u;                fx = fu;                dx = du;            }            else {                if (u < x) a=u; else b=u;                if (fu <= fw || w == x) {                    v = w;                    fv = fw;                    dv = dw;                    w = u;                    fw = fu;                    dw = du;                }                else if (fu < fv || v == x || v == w) {                    v = u;                    fv = fu;                    dv = du;                }            }        }        UARTOutput(OUT_ERROR, "dbrent: Too many iterations\n");        return 0.0;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲福中文字幕伊人影院| 国产婷婷色一区二区三区在线| 成人午夜在线播放| 国产精品一区二区久久不卡| 老司机免费视频一区二区三区| 性感美女极品91精品| 亚洲一区二区三区自拍| 亚洲福中文字幕伊人影院| 亚洲午夜在线电影| 亚洲成av人综合在线观看| 亚洲v中文字幕| 免费人成黄页网站在线一区二区| 日韩av中文在线观看| 国产在线一区观看| 成人h精品动漫一区二区三区| 成人av在线影院| 在线观看91精品国产入口| 欧美怡红院视频| 日韩午夜精品电影| 久久精品欧美一区二区三区不卡| 国产精品乱人伦| 一区二区成人在线视频| 男男gaygay亚洲| 国产凹凸在线观看一区二区| 91免费版pro下载短视频| 欧美在线视频日韩| 欧美不卡一二三| 亚洲男人天堂av| 久国产精品韩国三级视频| 国产精品一区二区果冻传媒| 91色九色蝌蚪| 久久久久久日产精品| 亚洲资源在线观看| 国产激情视频一区二区三区欧美 | 日韩精品一区二区三区视频| 久久久久国产精品麻豆| 一区二区三区日韩欧美| 久久99精品国产麻豆婷婷洗澡| 国产福利一区在线| 91精品国产综合久久精品图片| 国产农村妇女毛片精品久久麻豆| 亚洲一区二区成人在线观看| 国产不卡视频在线播放| 欧美一区二区网站| 亚洲美女屁股眼交| 国产精品羞羞答答xxdd| 8v天堂国产在线一区二区| 国产精品视频一二| 六月丁香婷婷色狠狠久久| 一本久久综合亚洲鲁鲁五月天| 日韩丝袜美女视频| 一区二区成人在线| av电影在线不卡| 国产色产综合色产在线视频| 青青草原综合久久大伊人精品 | 精品一区免费av| 在线看日本不卡| 亚洲天堂精品在线观看| 国产麻豆成人精品| 欧美一区二区三区性视频| 亚洲动漫第一页| 91麻豆国产精品久久| 国产亚洲精品资源在线26u| 毛片av一区二区| 欧美一级日韩不卡播放免费| 丝袜国产日韩另类美女| 91视频免费播放| 亚洲欧美国产毛片在线| 91原创在线视频| 亚洲人成网站影音先锋播放| 成人免费毛片嘿嘿连载视频| 国产色一区二区| 麻豆91在线看| 精品国产3级a| 国产成人免费xxxxxxxx| 欧美高清一级片在线观看| 国产精品99久久久久久有的能看| 2020国产精品久久精品美国| 精品一区二区三区视频| 久久免费电影网| 丰满放荡岳乱妇91ww| 国产精品毛片久久久久久| 成人a免费在线看| 亚洲人成精品久久久久久| 成人永久免费视频| 1024精品合集| 欧美在线观看一区| 亚洲高清视频中文字幕| 3atv一区二区三区| 狠狠色狠狠色综合| 国产精品的网站| 国产欧美视频在线观看| 盗摄精品av一区二区三区| 中文字幕一区二区视频| 在线中文字幕不卡| 久久精品国产澳门| 国产婷婷色一区二区三区四区| 成人综合激情网| 亚洲国产精品综合小说图片区| 日韩欧美中文一区| 成人天堂资源www在线| 亚洲一区二区三区四区在线| 欧美乱妇15p| 国产99久久久久久免费看农村| 国产精品对白交换视频| 欧美理论电影在线| 成人性生交大片免费看中文网站| 亚洲高清三级视频| 国产精品情趣视频| 欧美精品久久99久久在免费线| 国产乱码字幕精品高清av | 欧美日高清视频| 精品一区二区在线播放| 最新国产精品久久精品| 欧美精品xxxxbbbb| 懂色av一区二区三区蜜臀| 丝袜国产日韩另类美女| 综合激情成人伊人| 久久免费看少妇高潮| 欧美日韩中文字幕一区二区| 国产精品一区二区三区网站| 亚洲午夜电影在线观看| 中文字幕第一区二区| 欧美人妇做爰xxxⅹ性高电影| 丰满亚洲少妇av| 国产一区二区电影| 蜜桃视频第一区免费观看| 一区二区三区欧美亚洲| 国产精品视频免费看| 精品久久久久久久久久久院品网 | 五月婷婷综合激情| 中文字幕一区在线观看| 一区二区三区免费在线观看| 久久综合九色欧美综合狠狠 | 久久成人免费电影| 日韩专区一卡二卡| 亚洲高清久久久| 亚洲成人激情社区| 亚洲高清不卡在线| 午夜欧美视频在线观看| 一区二区在线免费| 亚洲欧洲国产日本综合| 欧美国产精品v| 久久久影视传媒| 337p日本欧洲亚洲大胆精品| 日韩女优视频免费观看| 欧美一级日韩不卡播放免费| 3d动漫精品啪啪一区二区竹菊| 精品视频免费在线| 欧美日本国产一区| 日韩午夜激情电影| 欧美成人三级在线| 久久久不卡网国产精品一区| 欧美xingq一区二区| 91麻豆精品国产91久久久久久 | 成人一级视频在线观看| 国产乱人伦精品一区二区在线观看| 国产综合一区二区| 国产成+人+日韩+欧美+亚洲| 欧美二区在线观看| 制服丝袜成人动漫| 日韩一区二区三区视频在线| 日韩精品一区二区三区视频播放 | 亚洲成人在线观看视频| 亚洲成人动漫在线免费观看| 午夜影院久久久| 裸体在线国模精品偷拍| 久久99精品一区二区三区| 国产一区二区成人久久免费影院 | 色哟哟国产精品免费观看| 91九色02白丝porn| 欧美精品1区2区| 精品精品欲导航| 中文字幕av一区二区三区高| 综合久久久久综合| 日韩国产欧美三级| 国产成人在线视频播放| 欧美午夜免费电影| www国产精品av| 樱花草国产18久久久久| 男女性色大片免费观看一区二区| 国产一区二区三区不卡在线观看| av一区二区三区四区| 538在线一区二区精品国产| 久久中文字幕电影| 一区二区三国产精华液| 久久成人18免费观看| 91蜜桃免费观看视频| 日韩精品中文字幕在线一区| 中文字幕视频一区二区三区久| 偷拍与自拍一区| 成人av在线网站| 欧美一区二区免费| 亚洲精品欧美二区三区中文字幕| 日av在线不卡| 色系网站成人免费| 久久人人超碰精品| 日韩1区2区日韩1区2区| av一区二区不卡| 久久久久久影视|