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

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

?? runiirsparse.cpp

?? Intel開發的IPP庫的應用例程
?? CPP
字號:

/*
//
//               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) 2005-2006 Intel Corporation. All Rights Reserved.
//
*/

// RunIirSparse.cpp : implementation of the CRunIirSparseclass.
// CRunIirSparseclass processes vectors by ippSP functions listed in
// CallIppFunction member function.
// See CRun & CippsRun classes for more information.
//
/////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ippsDemo.h"
#include "ippsDemoDoc.h"
#include "RunIirSparse.h"
#include "ParmIirSparseDlg.h"
#include "Histo.h"

CRunIirSparse::CRunIirSparse()
{
   m_epsilon = 0.01;
   m_pBuffer = NULL;
}

CRunIirSparse::~CRunIirSparse()
{

}

BOOL CRunIirSparse::Open(CFunc func) 
{
   if (!CRunIir::Open(func)) return FALSE;
   return TRUE;
}

CParamDlg* CRunIirSparse::CreateDlg()
{
   return new CParmIirSparseDlg;
}

void CRunIirSparse::UpdateData(CParamDlg* parmDlg, BOOL save)
{
   CippsRun::UpdateData(parmDlg,save);
   CParmIirSparseDlg *pDlg = (CParmIirSparseDlg*)parmDlg;
   if (save) {
      m_epsilon = pDlg->m_epsilon;
   } else {
      m_IirSparse.Init(m_pDocTaps->GetVector());
      pDlg->m_pIirSparse = &m_IirSparse;
      pDlg->m_TapTitle = m_pDocTaps->GetTitle();
      pDlg->m_epsilon = m_epsilon;
   }
}

BOOL CRunIirSparse::BeforeCall()
{
   int stateSize;
   CHECK_CALL(ippsIIRSparseGetStateSize_32f,(
       m_IirSparse.GetNZTapsLen1(), m_IirSparse.GetNZTapsLen2(), 
       m_pDocTaps->GetVector()->Length()>>1, m_pDocTaps->GetVector()->Length()>>1, 
       &stateSize));

   m_pBuffer = (Ipp8u*)ippMalloc(stateSize);

   CHECK_CALL(ippsIIRSparseInit_32f,((IppsIIRSparseState_32f**)&m_pState,
      m_IirSparse.GetNZTaps(), m_IirSparse.GetNZTapPos(), 
      m_IirSparse.GetNZTapsLen1(), m_IirSparse.GetNZTapsLen2(),
      (Ipp32f*)m_pDelay, m_pBuffer))
   return TRUE;
}

BOOL CRunIirSparse::AfterCall(BOOL bOk)
{
   ippFree(m_pBuffer);
   return TRUE;
}

IppStatus CRunIirSparse::CallIppFunction()
{
   FUNC_CALL(ippsIIRSparse_32f, ((Ipp32f*)pSrc, (Ipp32f*)pDst, len,
      (IppsIIRSparseState_32f*)m_pState))

   return stsNoFunction;
}

void CRunIirSparse::AddHistoFunc(CHisto* pHisto, int vecPos)
{
   CMyString initParms;
   CMyString initInfo;
   initParms << m_pDocTaps->GetTitle() 
         << ", " << m_IirSparse.GetNZTapsLen1()
         << ", " << m_IirSparse.GetNZTapsLen2()
         ;
   initInfo << "eps=" << m_epsilon;
   pHisto->AddFuncString("ippsIIRSparseInit_32f", initParms, initInfo);
   CippsRun::AddHistoFunc(pHisto,vecPos);
}

CString CRunIirSparse::GetHistoryParms()
{
   CMyString parm;
   parm << len;
   return parm;
}

//////////////////////////////////////////////////////////////////////////////
//    class CIirSparse implementation
//

void CIirSparse::Init(CVector* pVector)
{
   if (pVector->Type() != pp32f) {
      Delete();
      return;
   }
   m_pTapsVector = pVector;
   Create();
   Sparse(0);
}

void CIirSparse::Create()
{
   if (m_pTapsVector == NULL) return;
   int len = m_pTapsVector->Length();
   m_SparsedVector.Init(pp32f, len);
   m_pNZTaps = (Ipp32f*)ippMalloc(len*sizeof(Ipp32f));
   m_pNZTapPos = (Ipp32s*)ippMalloc(len*sizeof(Ipp32s));
}

void CIirSparse::Delete()
{   
   m_pTapsVector = NULL;
   m_SparsedVector.Deallocate();
   ippFree(m_pNZTaps);  m_pNZTaps= NULL;
   ippFree(m_pNZTapPos);  m_pNZTapPos= NULL;
   m_NZTapsLen1 = 0;
   m_NZTapsLen2 = 0;
}

void CIirSparse::Sparse(double epsilon)
{
   if (m_pTapsVector == NULL) return;
   Ipp32f* pSrcTaps = (Ipp32f*)(*m_pTapsVector);
   Ipp32f* pDstTaps = (Ipp32f*)m_SparsedVector;
   int len1 = m_pTapsVector->Length()>>1;
   int len2 = m_pTapsVector->Length()>>1;
   if (pSrcTaps[len1] == 0) return;
   Ipp32f A0 = 1/pSrcTaps[len1];
   if (epsilon < 0) epsilon = -epsilon;
   int iNZ = 0;
   int i = 0;
   for ( ; i<len1; i++) {
      Ipp32f nz = pSrcTaps[i]*A0;
      if (nz > epsilon || nz < -epsilon) {
         pDstTaps[i] = pSrcTaps[i];
         m_pNZTaps[iNZ] = nz;
         m_pNZTapPos[iNZ] = i;
         iNZ++;
      } else {
         pDstTaps[i] = 0;
      }
   }
   m_NZTapsLen1 = iNZ;
   pDstTaps[i] = pSrcTaps[i];
   for (i++; i<len1 + len2; i++) {
      Ipp32f nz = pSrcTaps[i]*A0;
      if (nz > epsilon || nz < -epsilon) {
         pDstTaps[i] = pSrcTaps[i];
         m_pNZTaps[iNZ] = -nz;
         m_pNZTapPos[iNZ] = i - len1;
         iNZ++;
      } else {
         pDstTaps[i] = 0;
      }
   }
   m_NZTapsLen2 = iNZ - m_NZTapsLen1;
}
      

Ipp32s* CIirSparse::GetNZTapPos() { return m_pNZTapPos;}

int CIirSparse::GetNZTapsLen1() { return m_NZTapsLen1;}
int CIirSparse::GetNZTapsLen2() { return m_NZTapsLen2;}

Ipp32f* CIirSparse::GetNZTaps() { return m_pNZTaps;}

CVector* CIirSparse::GetSparsedVector() { return &m_SparsedVector;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品国产自产在线 | 99久久综合狠狠综合久久| 欧美久久免费观看| 国产女人18毛片水真多成人如厕| 亚洲一卡二卡三卡四卡五卡| 国产精品一区二区三区99| 欧美在线制服丝袜| 国产精品久久777777| 老司机精品视频导航| 色悠悠久久综合| 久久综合久色欧美综合狠狠| 日韩精品色哟哟| 色婷婷av一区二区三区大白胸| 欧美sm美女调教| 三级欧美在线一区| 99久久精品免费| 国产婷婷色一区二区三区在线| 奇米色777欧美一区二区| 欧美性大战久久久久久久蜜臀| 国产精品无人区| 精品一区二区久久| 欧美高清视频不卡网| 中文字幕佐山爱一区二区免费| 国产成人在线看| 精品国产免费人成在线观看| 91亚洲精华国产精华精华液| 久久久精品黄色| 黑人巨大精品欧美黑白配亚洲| 51精品视频一区二区三区| 亚洲午夜激情av| 欧美无砖专区一中文字| 一区二区三区 在线观看视频| av亚洲精华国产精华精华| 久久久久久黄色| 国产69精品久久99不卡| 国产日韩欧美在线一区| 不卡的av网站| 1区2区3区欧美| 日本黄色一区二区| 亚洲国产视频一区| 欧美丰满美乳xxx高潮www| 日本视频在线一区| 精品国产一区二区国模嫣然| 韩国毛片一区二区三区| 久久久久久一二三区| 丰满白嫩尤物一区二区| 亚洲日本欧美天堂| 欧美在线三级电影| 奇米综合一区二区三区精品视频| 欧美r级电影在线观看| 国产91丝袜在线播放九色| 国产精品欧美久久久久无广告| 91亚洲永久精品| 午夜久久久久久| 精品对白一区国产伦| 丰满少妇在线播放bd日韩电影| 亚洲色图视频网站| 欧美日本高清视频在线观看| 麻豆成人在线观看| 国产午夜三级一区二区三| 成人免费高清在线观看| 亚洲午夜久久久久中文字幕久| 日韩一区二区三区在线视频| 国产成人日日夜夜| 亚洲午夜久久久久久久久电影网| 欧美放荡的少妇| 高清不卡一二三区| 婷婷久久综合九色综合绿巨人| 欧美刺激脚交jootjob| 成人黄色软件下载| 日本不卡在线视频| 国产精品卡一卡二卡三| 欧美一级理论性理论a| 国产成a人亚洲精| 亚瑟在线精品视频| 中文字幕av在线一区二区三区| 欧美猛男超大videosgay| 国产精品一区在线观看乱码| 伊人开心综合网| 26uuu国产一区二区三区 | 国产精品77777竹菊影视小说| 亚洲日本中文字幕区| 亚洲精品在线电影| 欧美色图激情小说| 成人av小说网| 激情五月播播久久久精品| 亚洲成人三级小说| 日韩毛片精品高清免费| 久久色视频免费观看| 91精品国产综合久久久久| 色8久久人人97超碰香蕉987| 国产精品夜夜爽| 免费一级片91| 亚洲国产欧美日韩另类综合| 中文字幕五月欧美| 国产日韩一级二级三级| 日韩视频免费观看高清完整版在线观看| 91在线视频在线| 懂色av一区二区三区免费观看| 久久机这里只有精品| 天堂va蜜桃一区二区三区 | 美女网站视频久久| 亚洲香肠在线观看| 亚洲三级在线免费观看| 久久精品视频免费观看| 精品福利视频一区二区三区| 7777精品伊人久久久大香线蕉| 欧美在线一二三四区| av在线播放不卡| av中文一区二区三区| 成人手机在线视频| 国产91高潮流白浆在线麻豆 | 亚洲影视在线播放| 亚洲视频在线一区| 亚洲欧美一区二区三区孕妇| 中文字幕免费在线观看视频一区| 久久免费视频一区| 国产亚洲1区2区3区| 国产欧美日产一区| 国产精品色哟哟| 国产精品你懂的在线欣赏| 久久久高清一区二区三区| 国产欧美在线观看一区| 亚洲国产高清不卡| 国产精品乱码久久久久久| 国产精品国产精品国产专区不片| 国产精品久久久久久久岛一牛影视| 日本一区二区动态图| 亚洲色图一区二区三区| 亚洲高清在线视频| 日韩成人伦理电影在线观看| 久久99热国产| 国产精品 日产精品 欧美精品| 国产白丝精品91爽爽久久| 成人综合婷婷国产精品久久| 99精品一区二区三区| 精品视频一区三区九区| 制服丝袜亚洲色图| 国产三级欧美三级| 一区二区三区欧美久久| 三级一区在线视频先锋| 国产综合久久久久影院| 91色婷婷久久久久合中文| 欧美中文字幕亚洲一区二区va在线| 欧美精品高清视频| 国产三区在线成人av| 亚洲日本丝袜连裤袜办公室| 同产精品九九九| 国产91露脸合集magnet| 欧美亚洲一区二区在线观看| 日韩欧美精品在线视频| 中文字幕欧美激情| 日韩成人午夜电影| 99综合影院在线| 欧美一区二区三区电影| 国产精品全国免费观看高清 | 欧美日韩激情一区二区三区| 欧美电影免费提供在线观看| 亚洲图片激情小说| 毛片av中文字幕一区二区| 91视频一区二区| 久久一留热品黄| 午夜国产精品一区| 国产成人av资源| 欧美一级黄色片| 亚洲人妖av一区二区| 久久成人免费网| 在线一区二区视频| 欧美韩国日本不卡| 免费一级欧美片在线观看| 日本久久精品电影| 欧美国产精品一区二区三区| 午夜精品久久久久久久久| 99精品热视频| 久久精品一级爱片| 日韩**一区毛片| 欧美伊人精品成人久久综合97| 国产欧美日韩视频在线观看| 欧美a级理论片| 欧美性生活久久| 亚洲欧洲制服丝袜| 不卡一二三区首页| 337p粉嫩大胆色噜噜噜噜亚洲 | 91精品国产全国免费观看| 国产精品的网站| 国产一区二区三区日韩| 欧美精品久久久久久久久老牛影院| 国产精品久久久久久久久动漫 | 蜜臀国产一区二区三区在线播放| 色天使色偷偷av一区二区| 国产精品国产精品国产专区不蜜| 国产真实乱子伦精品视频| 日韩精品一区国产麻豆| 日韩中文字幕91| 欧美日韩免费观看一区二区三区 | 香港成人在线视频| 欧美综合天天夜夜久久| 亚洲丝袜另类动漫二区| 91视视频在线观看入口直接观看www | 亚洲欧美国产三级|