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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? prob_calc.cpp

?? Intel開發(fā)的IPP庫(kù)的應(yīng)用實(shí)例
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
/*
//
//                  INTEL CORPORATION PROPRIETARY INFORMATION
//     This software is supplied under the terms of a license agreement or
//     nondisclosure agreement with Intel Corporation and may not be copied
//     or disclosed except in accordance with the terms of that agreement.
//          Copyright(c) 1999-2006 Intel Corporation. All Rights Reserved.
//
//     Intel(R) Integrated Performance Primitives Gaussian Mixture Sample for Windows*
//
//  By downloading and installing this sample, you hereby agree that the
//  accompanying Materials are being provided to you under the terms and
//  conditions of the End User License Agreement for the Intel(R) Integrated
//  Performance Primitives product previously accepted by you. Please refer
//  to the file ippEULA.rtf located in the root directory of your Intel(R) IPP
//  product installation for more information.
//
//
//     Gaussian Mixture Calculation Class
//
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ipps.h>
#include <ippsr.h>

#include "prob_calc.h"
#include "feat_calc.h"
#include "select_gauss.h"

/////////////////////////////////////////////////////////////
//                                                         //
//       Mixture parameter file structure                  //
//                                                         //
//       Param_File_Header header;                         //
//       File_Mixture exstates[header.mixNum]              //
//       float weights[wgtNum]                             //
//       float means[wgtNum*((vecSize+3)&(-3))]            //
//       float vars[wgtNum*((vecSize+3)&(-3))]             //
//       float dets[wgtNum]                                //
//       float trpdets[trpNum]                             //
//                                                         //
/////////////////////////////////////////////////////////////


Prob_Calc::Prob_Calc(Calc_Hint hint) {
   state_number = 0;
   max_gauss    = 0;
   space_dim    = 0;
   gauss_num    = 0;
   max_len      = 0;
   min_len      = 0;
   space_dim4   = 0;
   state_number4= 0;
   gauss_num4   = 0;
   curidx       = 0;
   lastidx      = 0;
   delta_delay  = 0;
   sen_end      = false;
   type         = hint;
   feat         = NULL;
   buffer       = NULL;
   features     = NULL;
   tmp_prob     = NULL;
   states       = NULL;
   weights      = NULL;
   dets         = NULL;
   means        = NULL;
   vars         = NULL;
   curfeat      = NULL;
   endfeat      = NULL;
   lastfeat     = NULL;
   flog         = NULL;
   sel_gauss    = NULL;
   is_select    = (hint==calcVecS);
   ready        = -2;
}

int Prob_Calc::Init_Arrays(void) {
   int model_len=0;
   if ((type!=calcNone)&&(type!=calcVect)&&(type!=calcVecM)&&(type!=calcMMix)&&(type!=calcMix)
      &&(type!=calcVecS))
                                return -1;
   if (state_number<=0)         return -1;
   if (max_gauss<=0)            return -1;
   if (space_dim<=0)            return -1;
   if (max_len<=0)              return -1;
   if (min_len<=0)              return -1;
   if (max_len<100)             max_len=100;
   if (min_len<12)              min_len=12;
   if (min_len>(max_len>>3))    min_len=(max_len>>3);
   space_dim4=(space_dim+3)&(~3);
   state_number4=(state_number+3)&(~3);
   gauss_num4=(gauss_num+3)&(~3);
   model_len=sizeof(Mixture)*state_number4+sizeof(float)*(gauss_num4+gauss_num4+
             gauss_num*space_dim4+gauss_num*space_dim4);

   if (!(features  = ippsMalloc_32f(space_dim4*max_len)))   return -2;

   int tmp_len=(max_gauss>max_len)?max_gauss:max_len;
   if (!(tmp_prob  = ippsMalloc_32f(tmp_len)))              return -2;

   if (!(buffer    = (void*)ippsMalloc_8u(model_len)))      return -2;

   states     = (Mixture*)buffer;
   weights    = (float*)(states+state_number4);
   dets       = weights+gauss_num4;
   means      = dets+gauss_num4;
   vars       = means+gauss_num*space_dim4;

   return 0;
}

int Prob_Calc::Init_LogFile(char *feat_log) {

   if (ready!=-1)               return -10;

   if (!feat_log) {
      flog=NULL;
   } else if (!feat_log[0]) {
      flog=NULL;
   } else {
      if (!(flog=fopen(feat_log, "wb")))                    return -3;
   }
   return 0;
}

int Prob_Calc::Init_Calc(int N, int G, int L, int F, int M) {

   if (ready!=-2)                                           return -10;

   if (is_select)                                           return -11; //Selection without param files isn't supported.

   state_number = N;
   max_gauss    = G;
   space_dim    = L;
   max_len      = F;
   min_len      = M;
   gauss_num    = state_number*max_gauss;

   int ret=Init_Arrays();
   if (ret<0) return ret;

   for (int i=0; i<state_number; i++) {
      states[i].compInd=i*max_gauss;
      states[i].compNum=max_gauss;
   }

   ippsSet_32f(1.0f/(float)max_gauss,weights,state_number);
   ippsSet_32f((float)space_dim,dets,state_number);
   ippsSet_32f(0.0f,means,state_number*space_dim4);
   ippsSet_32f(1.0f,vars,state_number*space_dim4);
   ippsOutProbPreCalc_32f_I(Weight(0),Det(0),gauss_num);

   ready=-1;
   return 0;
}

static FILE* create_param_file(char *file, int stateNum, int maxComp, int vecSize, int trpNum) {
   Param_File_Header header;
   FILE *fptr=NULL;
   int i;
   if (!(fptr=fopen(file, "wb")))  return fptr;
   header.vecSize=vecSize;
   header.maxComp=3;
   header.fileType=0;
   header.mixNum=stateNum;
   header.wgtNum=stateNum*maxComp;
   header.gaussNum=stateNum*maxComp;
   header.trpNum=trpNum;
   if (fwrite((void*)(&header), sizeof(Param_File_Header), 1, fptr)<1) {
      fclose(fptr); return fptr;
   }
   File_Mixture *states=(File_Mixture*)calloc(sizeof(File_Mixture),header.mixNum);
   if (!states) {
      fclose(fptr); return fptr;
   }
   for (i=0; i<header.mixNum; i++) {
       states[i].compNum=maxComp;
       states[i].wgtInd=maxComp*i;
       states[i].compInd=maxComp*i;
   }
   if (fwrite((void*)(states), sizeof(File_Mixture), header.mixNum, fptr)<1) {
      fclose(fptr); return fptr;
   }
   free(states);
   float *weights=(float*)calloc(sizeof(float),header.wgtNum);
   for (i=0; i<header.mixNum; i++) {
//       weights[i]=(float)log(1.0/maxComp);
       weights[i]=-1.0f-((float)(rand())/(float)RAND_MAX); // -2.0 ... -1.0
   }
   if (fwrite((void*)(weights), sizeof(float)*header.wgtNum, 1, fptr)<1) {
      fclose(fptr); return fptr;
   }
   free(weights);
   float *means=(float*)calloc(sizeof(float),header.gaussNum*((header.vecSize+3)&(-3)));
   for (i=0; i<stateNum*((header.vecSize+3)&(-3)); i++) {
//       means[i]=0.0f;
       means[i]=-4.0f+((float)(rand())*8.0f/(float)RAND_MAX); // -4.0 ... 4.0
   }
   if (fwrite((void*)(means), sizeof(float)*header.gaussNum*((header.vecSize+3)&(-3)), 1, fptr)<1) {
      fclose(fptr); return fptr;
   }
   free(means);
   float *vars=(float*)calloc(sizeof(float),header.gaussNum*((header.vecSize+3)&(-3)));
   for (i=0; i<stateNum*((header.vecSize+3)&(-3)); i++) {
//       vars[i]=1.0f;
       vars[i]=0.1f+((float)(rand())*0.4f/(float)RAND_MAX); // 0.1 ... 0.5
   }
   if (fwrite((void*)(vars), sizeof(float)*header.gaussNum*((header.vecSize+3)&(-3)), 1, fptr)<1) {
      fclose(fptr); return fptr;
   }
   free(vars);
   float *dets=(float*)calloc(sizeof(float),header.gaussNum);
   for (i=0; i<header.mixNum; i++) {
//       dets[i]=10.0f;
       dets[i]=90.0f+((float)(rand())*40.0f/(float)RAND_MAX); // 90.0 ... 130.0
   }
   if (fwrite((void*)(dets), sizeof(float)*header.gaussNum, 1, fptr)<1) {
      fclose(fptr); return fptr;
   }
   free(dets);
   float *trans=(float*)calloc(sizeof(float),header.trpNum);
   for (i=0; i<header.trpNum; i++) {
       trans[i]=0.1f;
   }
   if (fwrite((void*)(trans), sizeof(float), header.trpNum, fptr)<1) {
      fclose(fptr); return fptr;
   }
   free(trans);
   fclose(fptr);
   fptr=fopen(file, "rb");
   return fptr;
}

int Prob_Calc::Init_Calc(char* file, int F, int M) {

   int i;
   FILE  *fptr;
   Param_File_Header header;
   File_Mixture *exstates=NULL;

   if (ready!=-2)                                           return -10;

   if (!(fptr=fopen(file, "rb")))
   if (!(fptr=create_param_file(file,6000,4,36,100)))       return -3;
   if (fread((void*)(&header), sizeof(Param_File_Header), 1, fptr)<1) {
      fclose(fptr); return -3;
   }

   state_number = header.mixNum;
   max_gauss    = 1;
   space_dim    = header.vecSize;
   max_len      = F;
   min_len      = M;

   gauss_num    = header.wgtNum;
   if (gauss_num<=0)                          {fclose(fptr); return -1;}
   if ((header.fileType&0x0111)!=0)           {fclose(fptr); return -1;}

   int ret=Init_Arrays();
   if (ret<0)                                 {fclose(fptr); return ret;};

   if (!(exstates  = (File_Mixture*)ippsMalloc_8u(sizeof(File_Mixture)*state_number)))
      return -2;
   if ((int)fread((void*)exstates, sizeof(File_Mixture), state_number, fptr)<state_number) {
      fclose(fptr); ippsFree(exstates); return -3;
   }
   for (i=0; i<state_number; i++) {
      if (max_gauss<exstates[i].compNum) max_gauss=exstates[i].compNum;
      states[i].compInd=exstates[i].compInd;
      states[i].compNum=exstates[i].compNum;
   }
   ippsFree(exstates);

   if ((int)fread((void*)weights, sizeof(float), gauss_num, fptr)<gauss_num) {
      fclose(fptr); return -3;
   }
   if ((int)fread((void*)means, sizeof(float)*space_dim4, gauss_num, fptr)<gauss_num) {
      fclose(fptr); return -3;
   }
   if ((int)fread((void*)vars, sizeof(float)*space_dim4, gauss_num, fptr)<gauss_num) {
      fclose(fptr); return -3;
   }
   if ((int)fread((void*)dets, sizeof(float), gauss_num, fptr)<gauss_num) {
      fclose(fptr); return -3;
   }

   ippsOutProbPreCalc_32f_I(Weight(0),Det(0),gauss_num);

   fclose(fptr);
   ready=-1;
   return 0;
}

int Prob_Calc::Init_Select_Gauss(char *file, int cdbksize, int num_clust, float val, int num_vec, bool is_row){
   int i;

   if (is_select) {
      sel_gauss = new Select_Gauss(cdbksize, is_row, num_vec, val, num_clust, space_dim);
      if (sel_gauss==NULL)
         return -2;

      i=ReadAndInitCdbk(file, cdbksize, num_clust, num_vec, val, is_row);

      if (i!=0) return i;

      if (sel_gauss->MixTable==NULL) { // Initialization has not started, so create new cdbk
         i=CreateInitSaveCdbk(file, cdbksize, num_clust, num_vec, val, is_row);

         if(i!=0) return i;
       }
   }

   return 0;
}

Prob_Calc::~Prob_Calc(void) {
   state_number = 0;
   max_gauss    = 0;
   space_dim    = 0;
   gauss_num    = 0;
   max_len      = 0;
   min_len      = 0;
   space_dim4   = 0;
   state_number4= 0;
   gauss_num4   = 0;
   curidx       = 0;
   lastidx      = 0;
   delta_delay  = 0;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人影院| 色综合久久久久综合| 无码av免费一区二区三区试看| 国产精品伦理在线| 国产精品美女久久久久久久久久久| 久久久亚洲午夜电影| 精品少妇一区二区三区| 欧美videos大乳护士334| 欧美不卡一区二区三区| 欧美妇女性影城| 91麻豆精品国产综合久久久久久| 欧美日高清视频| 日韩欧美国产综合在线一区二区三区| 91精品国产福利| 精品日韩在线观看| 久久久99精品久久| 中文字幕一区二区三区乱码在线| 国产精品激情偷乱一区二区∴| 国产精品久久久久久久第一福利 | 欧美在线观看视频在线| 91久久香蕉国产日韩欧美9色| 在线免费观看日本欧美| 在线成人午夜影院| 亚洲精品在线网站| 亚洲最色的网站| 一二三区精品视频| 奇米888四色在线精品| 国产一区999| 99久久精品免费看国产| 欧美日韩国产高清一区二区| 日韩三级在线免费观看| 久久综合狠狠综合久久激情| 欧美国产激情二区三区| 亚洲最大的成人av| 麻豆成人在线观看| 99免费精品在线观看| 欧美网站一区二区| 久久综合网色—综合色88| 国产精品三级av在线播放| 一区二区三区资源| 麻豆国产精品777777在线| 丰满少妇在线播放bd日韩电影| 91黄色免费看| 久久影音资源网| 亚洲综合一区二区精品导航| 蜜桃视频在线观看一区二区| 成人高清在线视频| 欧美一区二区三区免费| 亚洲视频在线观看三级| 男男成人高潮片免费网站| 成人国产一区二区三区精品| 91精品欧美福利在线观看| 国产精品理论在线观看| 免费观看在线综合| 91视频在线观看| 精品国产自在久精品国产| 一区二区三区四区不卡在线| 激情欧美日韩一区二区| 91官网在线免费观看| 久久男人中文字幕资源站| 洋洋成人永久网站入口| 国产精品一区二区久久不卡 | 亚洲美女区一区| 精品亚洲免费视频| 91成人免费在线视频| 久久网站最新地址| 天天操天天色综合| 99精品欧美一区| 26uuu亚洲综合色欧美| 夜夜精品视频一区二区| 国产成人啪免费观看软件| 7777精品伊人久久久大香线蕉超级流畅 | 国产一区91精品张津瑜| 欧美喷潮久久久xxxxx| 亚洲丝袜制服诱惑| 国产成人精品午夜视频免费| 欧美一区二区在线播放| 亚洲一区二区在线免费观看视频| 国产91精品在线观看| xfplay精品久久| 日韩二区三区在线观看| 一本一道波多野结衣一区二区| 久久精品一区二区三区不卡牛牛| 日本伊人精品一区二区三区观看方式 | 国产精品一二三| 精品欧美一区二区在线观看 | 99久久国产综合精品色伊 | 青青草97国产精品免费观看 | 欧美色欧美亚洲另类二区| 亚洲欧美国产三级| 波波电影院一区二区三区| 久久精品一区二区| 精品一区二区在线观看| 日韩一级二级三级| 视频一区视频二区在线观看| 在线视频综合导航| 一区二区三区小说| 色拍拍在线精品视频8848| 亚洲美女淫视频| 99这里都是精品| 亚洲特黄一级片| 色菇凉天天综合网| 亚洲免费观看高清完整版在线| 99久久婷婷国产综合精品电影| 中文字幕一区二区三区不卡在线| 成人99免费视频| 中文字幕一区二区三区在线观看| 成人深夜视频在线观看| 国产精品嫩草影院av蜜臀| av中文字幕在线不卡| 亚洲视频电影在线| 色哟哟精品一区| 亚洲国产三级在线| 欧美日韩国产美女| 日本午夜精品一区二区三区电影| 日韩午夜在线观看视频| 一本色道久久综合亚洲91| 亚洲三级在线免费| 在线观看一区二区视频| 午夜av一区二区| 日韩欧美国产一区在线观看| 国产一区欧美日韩| 中文字幕免费观看一区| 91日韩在线专区| 五月激情六月综合| 精品久久久久久久人人人人传媒 | av激情成人网| 亚洲综合一区二区精品导航| 欧美嫩在线观看| 极品美女销魂一区二区三区| 国产精品情趣视频| 欧美视频日韩视频| 韩国欧美一区二区| 亚洲欧洲精品天堂一级| 欧美性猛交一区二区三区精品| 日韩精品免费专区| 久久久久久久久久看片| av一区二区三区黑人| 亚洲一区二区三区三| 精品国产乱码久久久久久免费| 风间由美中文字幕在线看视频国产欧美| 亚洲女同ⅹxx女同tv| 欧美乱妇15p| 国产成人小视频| 午夜精品福利在线| 国产三级一区二区三区| 在线精品亚洲一区二区不卡| 精品一区二区三区在线播放视频| 国产精品丝袜黑色高跟| 51精品视频一区二区三区| 国产成人精品免费| 五月婷婷综合网| 欧美激情一区在线观看| 337p亚洲精品色噜噜| 成人午夜大片免费观看| 丝袜亚洲精品中文字幕一区| 日本一区二区三区在线观看| 欧美日韩国产高清一区二区三区| 国产成人av资源| 日韩精品免费视频人成| 最新国产の精品合集bt伙计| 日韩欧美一区二区免费| 91久久久免费一区二区| 国产大陆亚洲精品国产| 丝袜美腿成人在线| 国产精品久久久久国产精品日日| 日韩精品一区二区三区四区视频| 色94色欧美sute亚洲线路二| 国产在线日韩欧美| 亚洲综合自拍偷拍| 国产精品久久二区二区| 日韩欧美一区二区三区在线| 欧美在线播放高清精品| av在线这里只有精品| 国产精品一区二区无线| 美腿丝袜亚洲一区| 99精品久久99久久久久| 91精品国产一区二区三区| 色综合久久中文字幕综合网| 国产精品综合av一区二区国产馆| 天堂成人国产精品一区| 一区二区三区波多野结衣在线观看| 国产午夜精品福利| 精品久久久久久久久久久久久久久 | 亚洲情趣在线观看| 国产日韩欧美激情| 日韩精品影音先锋| 欧美日本一道本在线视频| 色94色欧美sute亚洲线路二| 成人毛片视频在线观看| 国产一区二区伦理片| 免费成人av资源网| 天堂影院一区二区| 亚洲网友自拍偷拍| 一区二区三区免费看视频| 1024国产精品| 亚洲视频一区在线观看| 亚洲色欲色欲www在线观看| 欧美国产精品专区| 欧美经典一区二区|