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

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

?? pseudofloat.h

?? 語音濾波源代碼
?? H
字號:
/* Copyright (C) 2005 Jean-Marc Valin *//**   @file pseudofloat.h   @brief Pseudo-floating point *//*   Redistribution and use in source and binary forms, with or without   modification, are permitted provided that the following conditions   are met:      - Redistributions of source code must retain the above copyright   notice, this list of conditions and the following disclaimer.      - Redistributions in binary form must reproduce the above copyright   notice, this list of conditions and the following disclaimer in the   documentation and/or other materials provided with the distribution.      - Neither the name of the Xiph.org Foundation nor the names of its   contributors may be used to endorse or promote products derived from   this software without specific prior written permission.      THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/#ifndef PSEUDOFLOAT_H#define PSEUDOFLOAT_H#include "misc.h"#include <math.h>#ifdef FIXED_POINTtypedef struct {   spx_int16_t m;   spx_int16_t e;} spx_float_t;#if 0#define FLOAT_ZERO ((spx_float_t){0,0})#define FLOAT_ONE ((spx_float_t){16384,-14})#define FLOAT_HALF ((spx_float_t){16384,-15})#else#define FLOAT_ZERO {0,0}#define FLOAT_ONE {16384,-14}#define FLOAT_HALF {16384,-15}#endif#define MIN(a,b) ((a)<(b)?(a):(b))static _inline spx_float_t PSEUDOFLOAT(spx_int32_t x){   int e=0;   int sign=0;   if (x<0)   {      sign = 1;      x = -x;   }   if (x==0) {	   spx_float_t tmp;	   tmp.e = 0;	   tmp.m = 0;	   return tmp;	/*      return (spx_float_t) {0,0};	*/   }   while (x>32767)   {      x >>= 1;      /*x *= .5;*/      e++;   }   while (x<16383)   {      x <<= 1;      /*x *= 2;*/      e--;   }#if 0   if (sign)      return (spx_float_t) {-x,e};   else            return (spx_float_t) {x,e};#else   {		spx_float_t tmp;		tmp.e = e;		if (sign) {			tmp.m = -x;		}		else {			tmp.m = x;		}		return tmp;   }#endif}static _inline spx_float_t FLOAT_ADD(spx_float_t a, spx_float_t b){   spx_float_t r;   if (a.m==0)      return b;   else if (b.m==0)      return a;#if 0   r = (a).e > (b).e ? (spx_float_t) {((a).m>>1) + ((b).m>>MIN(15,(a).e-(b).e+1)),(a).e+1} : (spx_float_t) {((b).m>>1) + ((a).m>>MIN(15,(b).e-(a).e+1)),(b).e+1};#else   {		spx_float_t tmp;	    if (a.e > b.e) {			tmp.m = (a.m>>1) + (b.m>>MIN(15, a.e-b.e+1));			tmp.e = a.e + 1;		}		else {			tmp.m = (b.m>>1) + (a.m>>MIN(15, b.e-a.e+1));			tmp.e = b.e+1;		}		r = tmp;   }#endif   if (r.m>0)   {      if (r.m<16384)      {         r.m<<=1;         r.e-=1;      }   } else {      if (r.m>-16384)      {         r.m<<=1;         r.e-=1;      }   }   /*printf ("%f + %f = %f\n", REALFLOAT(a), REALFLOAT(b), REALFLOAT(r));*/   return r;}static _inline spx_float_t FLOAT_SUB(spx_float_t a, spx_float_t b){   spx_float_t r;   if (a.m==0)      return b;   else if (b.m==0)      return a;#if 0   r = (a).e > (b).e ? (spx_float_t) {((a).m>>1) - ((b).m>>MIN(15,(a).e-(b).e+1)),(a).e+1} : (spx_float_t) {((a).m>>MIN(15,(b).e-(a).e+1)) - ((b).m>>1) ,(b).e+1};#else   {		spx_float_t tmp;	    if (a.e > b.e) {			tmp.m = (a.m>>1) - (b.m>>MIN(15, a.e-b.e+1));			tmp.e = a.e + 1;		}		else {			tmp.m = (a.m>>MIN(15, b.e-a.e+1)) - (b.m>>1);			tmp.e = b.e+1;		}		r = tmp;   }#endif   if (r.m>0)   {      if (r.m<16384)      {         r.m<<=1;         r.e-=1;      }   } else {      if (r.m>-16384)      {         r.m<<=1;         r.e-=1;      }   }   /*printf ("%f + %f = %f\n", REALFLOAT(a), REALFLOAT(b), REALFLOAT(r));*/   return r;}static _inline int FLOAT_LT(spx_float_t a, spx_float_t b){   if (a.m==0)      return b.m<0;   else if (b.m==0)      return a.m>0;      if ((a).e > (b).e)      return ((a).m>>1) < ((b).m>>MIN(15,(a).e-(b).e+1));   else       return ((b).m>>1) > ((a).m>>MIN(15,(b).e-(a).e+1));}static _inline int FLOAT_GT(spx_float_t a, spx_float_t b){   return FLOAT_LT(b,a);}static _inline spx_float_t FLOAT_MULT(spx_float_t a, spx_float_t b){#if 0   spx_float_t r = (spx_float_t) {(spx_int16_t)((spx_int32_t)(a).m*(b).m>>15), (a).e+(b).e+15};#else   spx_float_t r;   {		spx_float_t tmp;		tmp.m = (spx_int16_t)((spx_int32_t)(a).m*(b).m>>15);		tmp.e = (a).e+(b).e+15;		r = tmp;   }#endif   if (r.m>0)   {      if (r.m<16384)      {         r.m<<=1;         r.e-=1;      }   } else {      if (r.m>-16384)      {         r.m<<=1;         r.e-=1;      }   }   /*printf ("%f * %f = %f\n", REALFLOAT(a), REALFLOAT(b), REALFLOAT(r));*/   return r;   }static _inline spx_float_t FLOAT_SHL(spx_float_t a, int b){#if 0	return (spx_float_t) {a.m,a.e+b};#else	{		spx_float_t tmp;		tmp.m = a.m;		tmp.e = a.e + b;		return tmp;	}#endif}static _inline spx_int16_t FLOAT_EXTRACT16(spx_float_t a){   if (a.e<0)      return (a.m+(1<<(-a.e-1)))>>-a.e;   else      return a.m<<a.e;}static _inline spx_int32_t FLOAT_MUL32(spx_float_t a, spx_word32_t b){   if (a.e<-15)      return SHR32(MULT16_32_Q15(a.m, b),-a.e-15);   else      return SHL32(MULT16_32_Q15(a.m, b),15+a.e);}static _inline spx_float_t FLOAT_MUL32U(spx_word32_t a, spx_word32_t b){   int e=0;   /* FIXME: Handle the sign */   if (a==0) {#if 0      return (spx_float_t) {0,0};#else		spx_float_t tmp;		tmp.m = 0;		tmp.e = 0;		return tmp;#endif   }   while (a>32767)   {      a >>= 1;      e++;   }   while (a<16384)   {      a <<= 1;      e--;   }   while (b>32767)   {      b >>= 1;      e++;   }   while (b<16384)   {      b <<= 1;      e--;   }#if 0   return (spx_float_t) {MULT16_16_Q15(a,b),e+15};#else   {	spx_float_t tmp;	tmp.m = MULT16_16_Q15(a, b);	tmp.e = e+15;	return tmp;   }#endif}static _inline spx_float_t FLOAT_DIV32_FLOAT(spx_word32_t a, spx_float_t b){   int e=0;   /* FIXME: Handle the sign */   if (a==0) {#if 0      return (spx_float_t) {0,0};#else		spx_float_t tmp;		tmp.m = 0;		tmp.e = 0;		return tmp;#endif	}   while (a<SHL32(b.m,14))   {      a <<= 1;      e--;   }   while (a>=SHL32(b.m-1,15))   {      a >>= 1;      e++;   }#if 0   return (spx_float_t) {DIV32_16(a,b.m),e-b.e};#else   {	spx_float_t tmp;	tmp.m = DIV32_16(a,b.m);	tmp.e = e-b.e;	return tmp;   }#endif}static _inline spx_float_t FLOAT_DIV32(spx_word32_t a, spx_word32_t b){   int e=0;   /* FIXME: Handle the sign */   if (a==0){#if 0      return (spx_float_t) {0,0};#else		spx_float_t tmp;		tmp.m = 0;		tmp.e = 0;		return tmp;#endif	}   while (b>32767)   {      b >>= 1;      e--;   }   while (a<SHL32(b,14))   {      a <<= 1;      e--;   }   while (a>=SHL32(b-1,15))   {      a >>= 1;      e++;   }#if 0   return (spx_float_t) {DIV32_16(a,b),e};#else   {	   spx_float_t tmp = {DIV32_16(a,b),e};	   return tmp;   }#endif}static _inline spx_float_t FLOAT_DIVU(spx_float_t a, spx_float_t b){   int e=0;   spx_int32_t num;   num = a.m;   while (a.m >= b.m)   {      e++;      a.m >>= 1;   }   num = num << (15-e);#if 0   return (spx_float_t) {DIV32_16(num,b.m),a.e-b.e-15+e};#else   {	spx_float_t tmp;	tmp.m = DIV32_16(num, b.m);	tmp.e = a.e-b.e-15+e;	return tmp;  }#endif}#else#define spx_float_t float#define FLOAT_ZERO 0.f#define FLOAT_ONE 1.f#define FLOAT_HALF 0.5f#define PSEUDOFLOAT(x) (x)#define FLOAT_MULT(a,b) ((a)*(b))#define FLOAT_MUL32(a,b) ((a)*(b))#define FLOAT_DIV32(a,b) ((a)/(b))#define FLOAT_EXTRACT16(a) (a)#define FLOAT_ADD(a,b) ((a)+(b))#define FLOAT_SUB(a,b) ((a)-(b))#define REALFLOAT(x) (x)#define FLOAT_DIV32_FLOAT(a,b) ((a)/(b))#define FLOAT_MUL32U(a,b) ((a)*(b))#define FLOAT_SHL(a,b) (a)#define FLOAT_LT(a,b) ((a)<(b))#define FLOAT_GT(a,b) ((a)>(b))#define FLOAT_DIVU(a,b) ((a)/(b))#endif#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩不卡一区二区三区| 国产精品国产精品国产专区不片| 黄网站免费久久| 日韩精品每日更新| 日韩精品一二三区| 一区二区三区精品视频| 亚洲免费观看高清完整版在线 | 欧美日韩亚洲另类| 一本高清dvd不卡在线观看| 成人午夜精品在线| 91麻豆6部合集magnet| 9l国产精品久久久久麻豆| 成人网页在线观看| 一本一道久久a久久精品| 日本大香伊一区二区三区| 欧美亚洲另类激情小说| 777奇米四色成人影色区| 欧美电影免费观看高清完整版在线观看| 91精品在线免费观看| 精品久久国产字幕高潮| 欧美精品一区二区三区视频| 久久精品免费在线观看| 中文字幕一区二区三区四区不卡 | 成人精品小蝌蚪| 91激情在线视频| 69av一区二区三区| 中文字幕精品一区| 亚洲不卡在线观看| 国产成人免费9x9x人网站视频| 成人免费三级在线| 91精品国产综合久久小美女| 精品福利一二区| 亚洲天堂久久久久久久| 午夜视频一区在线观看| 国产精品亚洲一区二区三区在线| 91原创在线视频| 日韩欧美精品在线视频| 18涩涩午夜精品.www| 青青国产91久久久久久| 99久久99久久精品免费看蜜桃| 欧美日韩免费观看一区三区| 久久亚洲一级片| 亚洲图片欧美视频| 成人丝袜视频网| 欧美一级久久久久久久大片| 国产精品视频在线看| 三级久久三级久久久| 国产成人午夜电影网| 在线播放日韩导航| 一区二区三区高清不卡| 国产剧情一区二区三区| 欧美高清精品3d| 亚洲欧美激情视频在线观看一区二区三区| 蜜桃在线一区二区三区| 在线看日本不卡| 亚洲欧洲日韩综合一区二区| 免费欧美在线视频| 91福利在线看| 亚洲嫩草精品久久| 成人开心网精品视频| 精品美女一区二区三区| 日韩国产精品大片| 欧美一区二区免费视频| 亚洲综合久久av| 97国产一区二区| 国产精品乱人伦| 国产suv精品一区二区三区| 欧美一区二区不卡视频| 亚洲色图制服丝袜| 92国产精品观看| 国产精品久久久久久久蜜臀| 国产真实乱对白精彩久久| 99麻豆久久久国产精品免费 | 韩国成人在线视频| 亚洲精品视频免费看| 欧美日韩国产另类一区| 色丁香久综合在线久综合在线观看| 久久激五月天综合精品| 久久精品一区四区| 日韩一级免费观看| 欧美色图片你懂的| 成人综合激情网| 韩国毛片一区二区三区| 午夜欧美电影在线观看| 亚洲福利国产精品| 久久成人免费电影| 国产偷国产偷精品高清尤物 | 北条麻妃国产九九精品视频| 日韩视频一区在线观看| 青青国产91久久久久久| 日韩欧美中文字幕公布| 国产自产高清不卡| 国产精品毛片大码女人| 91麻豆蜜桃一区二区三区| 亚洲美腿欧美偷拍| 欧美精品在线观看播放| 顶级嫩模精品视频在线看| 国产欧美一区二区三区在线老狼| 丁香天五香天堂综合| 亚洲欧洲成人av每日更新| 欧美在线不卡视频| 麻豆国产精品777777在线| 国产亚洲一区二区三区在线观看| 成人激情小说乱人伦| 亚洲最大色网站| 精品日韩成人av| 色欧美乱欧美15图片| 麻豆免费精品视频| 亚洲天堂久久久久久久| 欧美日韩国产精品成人| 激情都市一区二区| 夜夜精品浪潮av一区二区三区| 欧美精品精品一区| 成人午夜在线免费| 午夜欧美大尺度福利影院在线看| 精品国精品国产| 色香蕉成人二区免费| 国产尤物一区二区在线| 一区二区三区视频在线观看| 日韩欧美一区中文| 色国产精品一区在线观看| 麻豆精品在线观看| 亚洲一区二区精品视频| 国产日韩欧美一区二区三区综合| 欧美丝袜丝nylons| www.在线成人| 国产精品综合av一区二区国产馆| 亚洲日穴在线视频| 国产日韩欧美电影| 日韩欧美在线影院| 欧美日韩精品一区二区| 99久久久久久| 成人免费毛片嘿嘿连载视频| 美女高潮久久久| 日本午夜精品视频在线观看| 亚洲欧美另类在线| 中文字幕在线不卡视频| 久久众筹精品私拍模特| 欧美日韩高清影院| 91久久线看在观草草青青| 国产成人av在线影院| 狠狠网亚洲精品| 乱中年女人伦av一区二区| 日韩高清不卡一区二区三区| 亚洲在线视频免费观看| 亚洲精品成人精品456| 国产精品卡一卡二卡三| 国产亚洲欧美激情| 国产亚洲综合性久久久影院| 日韩免费一区二区| 欧美sm极限捆绑bd| 精品粉嫩aⅴ一区二区三区四区| 制服丝袜成人动漫| 欧美国产日韩在线观看| 欧美激情中文不卡| 国产精品乱人伦一区二区| 国产精品三级在线观看| 国产精品久久久久久久久动漫 | 日本免费在线视频不卡一不卡二| 亚洲国产美国国产综合一区二区| 亚洲欧美日韩成人高清在线一区| 亚洲免费在线观看视频| 亚洲精品中文字幕在线观看| 亚洲另类在线制服丝袜| 亚洲一区二区三区激情| 日一区二区三区| 国产乱色国产精品免费视频| 国产成人福利片| 在线视频综合导航| 在线不卡免费欧美| 国产偷国产偷精品高清尤物| 国产精品乱码妇女bbbb| 一区二区三区高清| 蜜臀久久久久久久| 国产激情一区二区三区| 99这里只有精品| 欧美三级电影一区| 久久综合九色综合欧美98| 国产精品亲子乱子伦xxxx裸| 尤物视频一区二区| 麻豆91在线播放免费| 国产精品一级片在线观看| caoporen国产精品视频| 欧洲精品视频在线观看| 欧美成人精精品一区二区频| 国产精品久久久久四虎| 亚洲成va人在线观看| 国产美女视频91| 91成人免费网站| 久久久精品日韩欧美| 亚洲柠檬福利资源导航| 精品在线视频一区| 欧美亚洲综合一区| 久久久久久久网| 亚洲成人精品一区二区| 国产福利不卡视频| 91精品欧美久久久久久动漫 | 色婷婷综合五月| 欧美变态tickle挠乳网站| 亚洲欧美电影一区二区|