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

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

?? bayesys3.c

?? 貝葉斯算法:盲分離技術
?? C
?? 第 1 頁 / 共 5 頁
字號:
        Object = &Objects[k];
        j = Ranint(Rand);
        if( j < 0 )
            j = ~j;
        CALL( RanInit(Object->Rand, j) )
        Objects[k].Natoms = 0;
        for( j = 0; j < Object->Nstore; j++ )
            for( i = 0; i < Nsize; i++ )
                Object->Cubes[j][i] = 0.0;
        Object->reset = 1;
    }
    Topology(Common);
    if( Valency )
        CALL( FluxInit(Common, Objects) )
Exit:
    return CALLvalue;
}

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Function:  PriorInit
// 
// Purpose:   Initialise prior objects and extra loglikelihood values
// 
// History:   JS        16 Oct 2002, 1 Feb 2003
//-----------------------------------------------------------------------------
static
int PriorInit(       //   O  0, or -ve error
CommonStr* Common,   // I O  general information
ObjectStr* Objects,  //   O  ENSEMBLE of objects
Node*      Links,    //  (O) empty on exit
int        NEXTRA,   // I    # extra loglikelihood values
double*    Lextra)   //   O  extra loglikelihood values   [NEXTRA]
{
    int       ENSEMBLE   = Common->ENSEMBLE;
    OperStr*  Operations = NULL; // list of operations   [ENSEMBLE]
    OperStr*  Oper;              // & individual operation
    int       i, j, k;
    int       CALLvalue  = 0;

// Pre-calibrate objects
    if( Common->Valency )
        CALL( FluxCalib0(Common, Objects, Links) )
    CALLOC(Operations, ENSEMBLE, OperStr)
// Find O(10) preliminary prior objects, preferably all with different L
    Operations->engine = 0;       // SetPrior
    Operations->iType  = -1;    Operations->i = 0;
    Operations->jType  = 0;
    Operations->kType  = 0;
    for( k = 0; k < NEXTRA; k++ )
    {
        for( i = 0; i < NEXTRA; i++ )
        {                     // try to ensure all L different but don't insist
            CALL( DoOperations(Operations, Common, Objects, Links, 1) )
            for( j = 0; j < k; j++ )
                if( Objects->Lhood == Lextra[j] )
                    break;
            if( j == k )
                break;
        }
        Lextra[k] = Objects->Lhood;
    }
// Set ENSEMBLE of prior objects
    for( i = 0; i < ENSEMBLE; i++ )
    {
        Oper = &Operations[i];
        Oper->engine =  0;               // SetPrior
        Oper->iType  = -1;    Oper->i = i;
        Oper->jType  =  0;
        Oper->kType  =  0;
    }
    CALL( DoOperations(Operations, Common, Objects, Links, ENSEMBLE) )
Exit:
    FREE(Operations)
    return CALLvalue;
}

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Function:  Control
//
// Purpose:   Rate-limited allowable cooling.
//            Aim for about Rate copy operations per object
//            (see Anneal for documentation on this).
//            
//            Guard against accidental near-coalescence of likelihood values
//            (which would allow arbitrarily large cooling), by including
//            artificial extra loglikelihood values, perhaps from old ensembles
//
// History:   John Skilling   28 Jan 2002, 25 Mar 2002, 18 Jul 2002
//                            17 Sep 2002  Rate pertains to most likely object
//                            17 Dec 2002  Lextra kept different
//                            20 Aug 2003  Separate Sort2 call
//                             3 Feb 2004  Use <# copies> not #copies(Lmax)
//-----------------------------------------------------------------------------
static 
int Control(        //   O  0, or -ve error
CommonStr* Common,  // I    General information
ObjectStr* Objects, // I    Sample objects, with Lhood               [ENSEMBLE]
int        Nextra,  // I    # extra objects
double*    Lextra,  // I O  Extra objects for stability                [Nextra]
double*    dcool)   //   O  cooling increment allowed by Rate
{
    double    Rate     = Common->Rate;
    int       ENSEMBLE = Common->ENSEMBLE;
    unsigned* Rand     = Common->Rand;
    double    Lmid;           // central likelihood value
    double    R;              // Rate, adjusted for finite allowable # copies
    int       N;              // total # likelihoods
    int       i, j;           // counters
    int       chop;           // binary chop counter
    double    a, copya;       // binary chop x and y (left)
    double    b, copyb;       // binary chop x and y (mid)
    double    c, copyc;       // binary chop x and y (right)
    double*   wa;             // binary chop data vector (left)
    double*   wb;             // binary chop data vector (mid)
    double*   wc;             // binary chop data vector (right)
    double*   work1  = NULL;  // workspace
    double*   work2  = NULL;  // workspace
    double*   work3  = NULL;  // workspace
    double*   Lvalue = NULL;  // workspace for sorted likelihoods
    double*   swap;           // exchange pointer
    double    Lmax;           // largest logL
    int       CALLvalue = 0;

// Default if all L equal or other anomaly
    *dcool = 0.0;

// Read all likelihoods
    N = ENSEMBLE + Nextra;
    CALLOC(Lvalue, N, double)
    CALLOC(work1, N, double)
    CALLOC(work2, N, double)
    CALLOC(work3, N, double)
    for( j = 0; j < ENSEMBLE; j++ )
        Lvalue[j] = Objects[j].Lhood;
    for( ; j < N; j++ )
        Lvalue[j] = Lextra[j-ENSEMBLE];
    if( N <= 1 )
        return 0;

// Offset loglikelihoods to MAX=0 for safety
    Lmax = Lvalue[0];
    for( i = 1; i < N; i++ )
        if( Lmax < Lvalue[i] )
            Lmax = Lvalue[i];
    for( i = 0; i < N; i++ )
        Lvalue[i] -= Lmax;
// Max # possible copies = max # recipients (per sample)
    R = N;
    for( i = 0; i < N; i++ )
        if( Lvalue[i] == 0.0 )
            R -= 1.0;
    R /= N;
    if( R > 0.0 )
    {
// Ensure # copies < max possible (the 3. is for rough backward compatibility)
        R = 1.0 / (3. / Rate + 1.0 / R);
// Guess initial value for dcool from normally distributed Lvalues
        a = b = 0.0;
        for( i = 0; i < N; i++ )
            a += Lvalue[i];
        a /= N;
        for( i = 0; i < N; i++ )
        {
            c = Lvalue[i] - a;
            b += c * c;
        }
        b = sqrt(b / N);
        a = b = 2.5066 * R / b;
// Bracket dcool by interval [a,b] a factor of 2 wide
        wa = work1;   wb = work2;
        for( i = 0; i < N; i++ )
            wa[i] = wb[i] = exp(a * Lvalue[i]);
        copya = copyb = Copies(wa, N);
        if( copya < R )
        {
            do
            {
                a = b;    copya = copyb;
                swap = wa;    wa = wb;    wb = swap;
                b = 2.0 * a;    
                for( i = 0; i < N; i++ )
                    wb[i] = wa[i] * wa[i];
                copyb = Copies(wb, N);
            }
            while( copyb < R );
        }
        else
        {
            do
            {
                b = a;    copyb = copya;
                swap = wb;    wb = wa;    wa = swap;
                a = b / 2.0;
                for( i = 0; i < N; i++ )
                    wa[i] = sqrt(wb[i]);
                copya = Copies(wa, N);
            }
            while( copya > R );
        }
// Binary chop to accuracy 1 in 1000
        wc = work3;
        for( chop = 0; chop < 10; chop++ )
        {
            c = (a + b) / 2;
            for( i = 0; i < N; i++ )
                wc[i] = sqrt(wa[i] * wb[i]);
            copyc = Copies(wc, N);
            if( copyc < R )
            {
                a = c;    copya = copyc;
                swap = wa;    wa = wc;    wc = swap;
            }
            else
            {
                b = c;    copyb = copyc;
                swap = wb;    wb = wc;    wc = swap;
            }
        }
// Final linear interpolation
        *dcool = (b * (R - copya) + a * (copyb - R)) / (copyb - copya);
    }

    if( Nextra )
    {
// Keep Lextra up-to-date enough, trying to keep all different
        for( j = 0; j < Nextra; j++ )
        {
            Lmid = Objects[Rangrid(Rand, ENSEMBLE)].Lhood;
            for( i = 0; i < Nextra; i++ )
                if( Lextra[i] == Lmid )
                    break;
            if( i == Nextra )
            {
                Lextra[Rangrid(Rand, Nextra)] = Lmid;
                break;
            }
        }
    }

// Phenomenological correction for finite ENSEMBLE, reducing effective dcool
// (Undo correction at top of Anneal)
    *dcool *= (N - 1.0) / N;
Exit:
    FREE(work3);
    FREE(work2);
    FREE(work1);
    FREE(Lvalue);
    return  CALLvalue;
}

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Function:  Copies
// 
// Purpose:   <# copy operations per object> for weights w
//
//              = SUM | w - <w> |  /  2 SUM w
//
// History:   JS     3 Feb 2004
//-----------------------------------------------------------------------------
static
double Copies(
double*  w,      // I   weights
int      N)      // I   dimension
{
    double sumw, wbar, copy;
    int    i;

    sumw = 0.0;
    for( i = 0; i < N; i++ )
        sumw += w[i];
    wbar = sumw / N;
    copy = 0.0;
    for( i = 0; i < N; i++ )
        copy += fabs(w[i] - wbar);
    return  copy / (2.0 * sumw);
}

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Function:  Anneal
//
// Purpose:   Anneal ensemble by dcool, by copying from source objects "src"
//            to destination objects "dest", as uniformly as possible
//            consistently with excess/deficit real multiplicities N:-
//
//               N(src)  = exp(dcool * (Lhood[src] - Lbar)) - 1.0
//                                                   for Lhood[src] > Lbar only
//               N(dest) = 1.0 - exp(dcool * (Lhood[dest] - Lbar))
//                                                  for Lhood[dest] < Lbar only
//            where Lbar is adjusted for equality in
//               # copy operations = SUM[src] N(src) = SUM[dest] N(dest).
//
//            A source will be copied either n or n+1 times, where
//               n = (int)N(src) = 0,1,2,...
//            A destination will be overwritten, with probability N(dest).
//
// History:   John Skilling   28 Jan 2002, 25 Mar 2002, 18 Jul 2002
//                            17 Sep 2002  Return # copies
//                             3 Feb 2004  Internal vector allocations
//-----------------------------------------------------------------------------
static
int Anneal(         //   O  #copies diagnostic, or -ve error
CommonStr* Common,  // I    CopyObject info
ObjectStr* Objects, // I    Sample objects                           [ENSEMBLE]
int        Nextra,  // I    # extra objects, for phenomenological de-correction
double     dcool)   // I    Cooling increment
{
    int       ENSEMBLE   = Common->ENSEMBLE;
    unsigned* Rand       = Common->Rand;
    OperStr*  Operations = NULL;             // list of operations   [ENSEMBLE]
    OperStr*  Oper;           // & individual operation
    double    Lmid;           // 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本视频中文字幕一区二区三区| 色av成人天堂桃色av| 99麻豆久久久国产精品免费| 国产精品亚洲一区二区三区在线| 日本成人在线电影网| 欧美日韩亚洲综合在线| 一区二区三区成人| 欧美亚洲动漫精品| 亚洲最新视频在线播放| 在线看国产一区| 亚洲一级二级在线| 777a∨成人精品桃花网| 免费人成在线不卡| 国产一区二区美女| 色婷婷香蕉在线一区二区| 国产精品萝li| av亚洲精华国产精华精华| 国产精品久久福利| 精品视频一区二区不卡| 日韩av电影免费观看高清完整版 | 亚洲成av人片| av不卡一区二区三区| 91九色02白丝porn| 五月婷婷另类国产| www成人在线观看| 国内外成人在线| 欧美激情综合在线| 香蕉成人伊视频在线观看| 调教+趴+乳夹+国产+精品| 丝袜a∨在线一区二区三区不卡| 日本一区二区免费在线观看视频 | 亚洲人精品午夜| 色综合久久综合网| 免费欧美日韩国产三级电影| 高清不卡一二三区| 日韩一区日韩二区| 蜜臀av国产精品久久久久 | 国产一区二区三区最好精华液| 丰满亚洲少妇av| 在线成人免费观看| 成人网在线播放| 亚洲午夜三级在线| 亚洲亚洲精品在线观看| 欧美日韩dvd在线观看| 欧美午夜免费电影| 欧美精品日韩一区| 欧美zozozo| 国产婷婷色一区二区三区 | 欧美亚洲国产一区二区三区va | 日韩欧美三级在线| 欧美一区二区私人影院日本| 欧美亚洲一区二区在线观看| 欧美一区二区女人| 99久久久无码国产精品| 国产成人精品亚洲日本在线桃色| 欧美一区二区视频免费观看| 一区二区三区欧美久久| www国产成人免费观看视频 深夜成人网| 丝袜亚洲另类欧美| 亚洲狼人国产精品| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品视频观看| 国产三级一区二区三区| 国产天堂亚洲国产碰碰| 久久久国产一区二区三区四区小说| 日本 国产 欧美色综合| 日本不卡123| 国产精品狼人久久影院观看方式| 成人免费观看av| 国产不卡一区视频| 亚洲r级在线视频| 日本伊人色综合网| 国产精品一线二线三线| 国产精品白丝jk黑袜喷水| 岛国精品在线观看| 欧美无乱码久久久免费午夜一区 | 久久综合九色欧美综合狠狠| 久久久午夜电影| 亚洲欧洲另类国产综合| 一区二区三区在线视频观看58| 欧美精品丝袜久久久中文字幕| 黄色资源网久久资源365| 成人免费毛片aaaaa**| 色88888久久久久久影院按摩 | 色婷婷精品久久二区二区蜜臀av | 亚洲日本中文字幕区| 午夜私人影院久久久久| 国产不卡视频在线播放| 91黄色小视频| 中文字幕av在线一区二区三区| 日韩午夜电影在线观看| 国产精品家庭影院| 日韩av在线播放中文字幕| 一本大道久久a久久综合| 国产激情偷乱视频一区二区三区| 亚洲成人手机在线| 国产原创一区二区三区| 在线中文字幕不卡| 在线观看一区日韩| 中文文精品字幕一区二区| 韩国v欧美v亚洲v日本v| 欧美高清精品3d| 欧美一区二区观看视频| 91网站视频在线观看| 亚洲国产激情av| 在线视频一区二区免费| 国产在线一区二区综合免费视频| 国产欧美中文在线| 免费成人你懂的| 日韩一级精品视频在线观看| 国产乱人伦偷精品视频不卡| 成人免费黄色大片| 99久久精品国产导航| 亚洲女同ⅹxx女同tv| 日韩亚洲电影在线| 天堂在线亚洲视频| 色综合色狠狠天天综合色| 国产欧美一区二区三区鸳鸯浴| 天堂久久一区二区三区| 欧美日本韩国一区二区三区视频| 成人欧美一区二区三区黑人麻豆| 中文字幕制服丝袜成人av| 国产mv日韩mv欧美| 国产乱理伦片在线观看夜一区| 婷婷亚洲久悠悠色悠在线播放| 国产一区二区三区黄视频 | 99视频超级精品| 久久久久国产精品免费免费搜索| 成人免费毛片嘿嘿连载视频| 欧美一区二区观看视频| 在线观看91精品国产麻豆| 麻豆一区二区三区| 成人午夜免费视频| 制服丝袜亚洲网站| 男女性色大片免费观看一区二区 | 日韩一区二区免费视频| 91麻豆精品国产91久久久久久久久 | 91精品国产综合久久福利| 午夜欧美大尺度福利影院在线看 | 久久久久久久一区| 亚洲色图一区二区三区| 亚瑟在线精品视频| 精品一区二区三区在线播放| 国产亚洲一二三区| 亚洲乱码中文字幕综合| 亚洲午夜在线电影| 国产不卡视频在线观看| 91久久精品网| 精品免费一区二区三区| 91久久奴性调教| 91麻豆精品久久久久蜜臀| 91精品国产综合久久精品麻豆| 曰韩精品一区二区| 成人免费看片app下载| 亚洲一区二区三区爽爽爽爽爽| 黄页视频在线91| 亚洲图片激情小说| 美女网站在线免费欧美精品| 亚洲国产高清不卡| 欧美在线综合视频| 欧美电影免费观看高清完整版在线观看| 欧洲av一区二区嗯嗯嗯啊| 久久久天堂av| 欧美日韩国产一级| 在线视频亚洲一区| 中文乱码免费一区二区| 久久理论电影网| 久久9热精品视频| 欧美日韩日日夜夜| voyeur盗摄精品| 精品国产免费久久| 日本久久精品电影| 91原创在线视频| 中文字幕在线视频一区| 国产精品福利一区二区三区| 日韩视频免费观看高清完整版 | 精品一区二区三区视频在线观看| 欧美一级欧美三级在线观看| 国产色91在线| 国产成人精品亚洲日本在线桃色| 欧美性色黄大片手机版| 欧美日韩视频在线第一区| 色综合久久66| 国产综合色在线视频区| 一本到不卡精品视频在线观看| 亚洲五码中文字幕| 高清不卡一区二区在线| 秋霞av亚洲一区二区三| 久久久精品蜜桃| 欧美一区日韩一区| 欧美亚洲动漫精品| 成人一区二区三区视频| 精品国产髙清在线看国产毛片 | 成人精品电影在线观看| 99国产精品国产精品毛片| 91在线看国产| 亚洲国产一二三| 亚洲1区2区3区4区| 色综合久久中文字幕综合网| 国产精品理伦片|