📄 g726_8cpp-source.html
字号:
<a name="l00380"></a>00380 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AP,10);<a name="l00381"></a>00381 <span class="keywordtype">int</span> DIF = (AX<<9)-AP;<a name="l00382"></a>00382 <span class="keywordtype">int</span> DIFSX = (DIF>>4);<a name="l00383"></a>00383 APP = (DIFSX+AP); <span class="comment">// & 1023;</span><a name="l00384"></a>00384 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(APP,10);<a name="l00385"></a>00385 }<a name="l00386"></a>00386 <a name="l00387"></a>00387 <a name="l00391"></a><a class="code" href="group__g726__section4.html#ga15">00391</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga15">FUNCTF</a>(<a class="code" href="group__integers.html#ga6">uint</a> RATE,<a class="code" href="group__integers.html#ga6">uint</a> I,<a class="code" href="group__integers.html#ga6">uint</a>& FI)<a name="l00392"></a>00392 {<a name="l00393"></a>00393 <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(I,RATE);<a name="l00394"></a>00394 <a name="l00395"></a>00395 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functf2[2] = {0,7};<a name="l00396"></a>00396 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functf3[4] = {0,1,2,7};<a name="l00397"></a>00397 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functf4[8] = {0,0,0,1,1,1,3,7};<a name="l00398"></a>00398 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functf5[16] = {0,0,0,0,0,1,1,1,1,1,2,3,4,5,6,6};<a name="l00399"></a>00399 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a>* <span class="keyword">const</span> functf[4] = {functf2,functf3,functf4,functf5};<a name="l00400"></a>00400 <a name="l00401"></a>00401 <a class="code" href="group__integers.html#ga6">uint</a> x = I;<a name="l00402"></a>00402 <span class="keywordtype">int</span> mask=(1<<(RATE-1));<a name="l00403"></a>00403 <span class="keywordflow">if</span>(x&mask)<a name="l00404"></a>00404 x = ~x;<a name="l00405"></a>00405 x &= mask-1;<a name="l00406"></a>00406 FI = functf[RATE-2][x];<a name="l00407"></a>00407 <a name="l00408"></a>00408 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(FI,3);<a name="l00409"></a>00409 }<a name="l00410"></a>00410 <a name="l00411"></a>00411 <a name="l00415"></a><a class="code" href="group__g726__section4.html#ga16">00415</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga16">LIMA</a>(<a class="code" href="group__integers.html#ga6">uint</a> AP,<a class="code" href="group__integers.html#ga6">uint</a>& AL)<a name="l00416"></a>00416 {<a name="l00417"></a>00417 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AP,10);<a name="l00418"></a>00418 AL = (AP>256) ? 64 : AP>>2;<a name="l00419"></a>00419 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AL,7);<a name="l00420"></a>00420 }<a name="l00421"></a>00421 <a name="l00422"></a>00422 <a name="l00426"></a><a class="code" href="group__g726__section4.html#ga17">00426</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga17">SUBTC</a>(<a class="code" href="group__integers.html#ga6">uint</a> DMSP,<a class="code" href="group__integers.html#ga6">uint</a> DMLP,<a class="code" href="group__integers.html#ga6">uint</a> TDP,<a class="code" href="group__integers.html#ga6">uint</a> Y,<a class="code" href="group__integers.html#ga6">uint</a>& AX)<a name="l00427"></a>00427 {<a name="l00428"></a>00428 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(DMSP,12);<a name="l00429"></a>00429 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(DMLP,14);<a name="l00430"></a>00430 <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(TDP,1);<a name="l00431"></a>00431 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(Y,13);<a name="l00432"></a>00432 <span class="keywordtype">int</span> DIF = (DMSP<<2)-DMLP;<a name="l00433"></a>00433 <a class="code" href="group__integers.html#ga6">uint</a> DIFM;<a name="l00434"></a>00434 <span class="keywordflow">if</span>(DIF<0)<a name="l00435"></a>00435 DIFM = -DIF;<a name="l00436"></a>00436 <span class="keywordflow">else</span><a name="l00437"></a>00437 DIFM = DIF;<a name="l00438"></a>00438 <a class="code" href="group__integers.html#ga6">uint</a> DTHR = DMLP >> 3;<a name="l00439"></a>00439 AX = (Y>=1536 && DIFM<DTHR) ? TDP : 1;<a name="l00440"></a>00440 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AX,1);<a name="l00441"></a>00441 }<a name="l00442"></a>00442 <a name="l00443"></a>00443 <a name="l00447"></a><a class="code" href="group__g726__section4.html#ga18">00447</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga18">TRIGA</a>(<a class="code" href="group__integers.html#ga6">uint</a> TR,<a class="code" href="group__integers.html#ga6">uint</a> APP,<a class="code" href="group__integers.html#ga6">uint</a>& APR)<a name="l00448"></a>00448 {<a name="l00449"></a>00449 <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(TR,1);<a name="l00450"></a>00450 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(APP,10);<a name="l00451"></a>00451 APR = TR ? 256 : APP;<a name="l00452"></a>00452 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(APR,10);<a name="l00453"></a>00453 }<a name="l00454"></a>00454 <a name="l00458"></a><a class="code" href="group__g726__section4.html#ga19">00458</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga19">ACCUM</a>(<span class="keywordtype">int</span> WAn[2],<span class="keywordtype">int</span> WBn[6],<span class="keywordtype">int</span>& SE,<span class="keywordtype">int</span>& SEZ)<a name="l00459"></a>00459 {<a name="l00460"></a>00460 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WAn[0],16);<a name="l00461"></a>00461 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WAn[1],16);<a name="l00462"></a>00462 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[0],16);<a name="l00463"></a>00463 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[1],16);<a name="l00464"></a>00464 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[2],16);<a name="l00465"></a>00465 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[3],16);<a name="l00466"></a>00466 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[4],16);<a name="l00467"></a>00467 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[5],16);<a name="l00468"></a>00468 <a class="code" href="group__integers.html#ga4">int16</a> SEZI = (<a class="code" href="group__integers.html#ga4">int16</a>)(WBn[0]+WBn[1]+WBn[2]+WBn[3]+WBn[4]+WBn[5]);<a name="l00469"></a>00469 <a class="code" href="group__integers.html#ga4">int16</a> SEI = (<a class="code" href="group__integers.html#ga4">int16</a>)(SEZI+WAn[0]+WAn[1]);<a name="l00470"></a>00470 SEZ = SEZI >> 1;<a name="l00471"></a>00471 SE = SEI >> 1; <a name="l00472"></a>00472 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SE,15);<a name="l00473"></a>00473 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SEZ,15);<a name="l00474"></a>00474 }<a name="l00475"></a>00475 <a name="l00476"></a>00476 <a name="l00480"></a><a class="code" href="group__g726__section4.html#ga20">00480</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga20">ADDB</a>(<a class="code" href="group__integers.html#ga6">uint</a> DQ,<span class="keywordtype">int</span> SE,<span class="keywordtype">int</span>& SR)<a name="l00481"></a>00481 {<a name="l00482"></a>00482 <a class="code" href="group__g726__section4m.html#ga0">CHECK_SM</a>(DQ,16);<a name="l00483"></a>00483 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SE,15);<a name="l00484"></a>00484 <span class="keywordtype">int</span> DQI;<a name="l00485"></a>00485 <span class="keywordflow">if</span>(DQ&(1<<15))<a name="l00486"></a>00486 DQI = (1<<15)-DQ;<a name="l00487"></a>00487 <span class="keywordflow">else</span><a name="l00488"></a>00488 DQI = DQ;<a name="l00489"></a>00489 SR = (<a class="code" href="group__integers.html#ga4">int16</a>)(DQI+SE);<a name="l00490"></a>00490 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SR,16);<a name="l00491"></a>00491 }<a name="l00492"></a>00492 <a name="l00493"></a>00493 <a name="l00497"></a><a class="code" href="group__g726__section4.html#ga21">00497</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga21">ADDC</a>(<a class="code" href="group__integers.html#ga6">uint</a> DQ,<span class="keywordtype">int</span> SEZ,<span class="keywordtype">int</span>& PK0,<a class="code" href="group__integers.html#ga6">uint</a>& SIGPK)<a name="l00498"></a>00498 {<a name="l00499"></a>00499 <a class="code" href="group__g726__section4m.html#ga0">CHECK_SM</a>(DQ,16);<a name="l00500"></a>00500 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SEZ,15);<a name="l00501"></a>00501 <span class="keywordtype">int</span> DQI;<a name="l00502"></a>00502 <span class="keywordflow">if</span>(DQ&(1<<15))<a name="l00503"></a>00503 DQI = (1<<15)-DQ;<a name="l00504"></a>00504 <span class="keywordflow">else</span><a name="l00505"></a>00505 DQI = DQ;<a name="l00506"></a>00506 <span class="keywordtype">int</span> DQSEZ = (<a class="code" href="group__integers.html#ga4">int16</a>)(DQI+SEZ);<a name="l00507"></a>00507 PK0 = DQSEZ>>15;<a name="l00508"></a>00508 SIGPK = DQSEZ ? 0 : 1;<a name="l00509"></a>00509 <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(PK0,1);<a name="l00510"></a>00510 <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(SIGPK,1);<a name="l00511"></a>00511 }<a name="l00512"></a>00512 <a name="l00513"></a>00513 <a name="l00514"></a><a class="code" href="group__g726__section4.html#ga22">00514</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga22">MagToFloat</a>(<a class="code" href="group__integers.html#ga6">uint</a> mag,<a class="code" href="group__integers.html#ga6">uint</a>& exp,<a class="code" href="group__integers.html#ga6">uint</a>& mant)<a name="l00515"></a>00515 {<a name="l00516"></a>00516 <a class="code" href="group__integers.html#ga6">uint</a> e = 0;<a name="l00517"></a>00517 <a class="code" href="group__integers.html#ga6">uint</a> m = mag<<1;<a name="l00518"></a>00518 <span class="keywordflow">if</span>(m>=(1<<8))<a name="l00519"></a>00519 {<a name="l00520"></a>00520 e |= 8;<a name="l00521"></a>00521 m >>= 8;<a name="l00522"></a>00522 }<a name="l00523"></a>00523 <span class="keywordflow">if</span>(m>=(1<<4))<a name="l00524"></a>00524 {<a name="l00525"></a>00525 e |= 4;<a name="l00526"></a>00526 m >>= 4;<a name="l00527"></a>00527 }<a name="l00528"></a>00528 <span class="keywordflow">if</span>(m>=(1<<2))<a name="l00529"></a>00529 {<a name="l00530"></a>00530 e |= 2;<a name="l00531"></a>00531 m >>= 2;<a name="l00532"></a>00532 }<a name="l00533"></a>00533 e |= m>>1;<a name="l00534"></a>00534 exp = e;<a name="l00535"></a>00535 mant = mag ? (mag<<6)>>e : 1<<5;<a name="l00536"></a>00536 }<a name="l00537"></a>00537 <a name="l00538"></a>00538
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -