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

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

?? mathdp31.c

?? MSP430單片機C語言應用程序設計實例精講(秦龍編著)
?? C
字號:
/*

2.4 kbps MELP Proposed Federal Standard speech coder

Fixed-point C code, version 1.0

Copyright (c) 1998, Texas Instruments, Inc.  

Texas Instruments has intellectual property rights on the MELP
algorithm.  The Texas Instruments contact for licensing issues for
commercial and non-government use is William Gordon, Director,
Government Contracts, Texas Instruments Incorporated, Semiconductor
Group (phone 972 480 7442).

The fixed-point version of the voice codec Mixed Excitation Linear
Prediction (MELP) is based on specifications on the C-language software
simulation contained in GSM 06.06 which is protected by copyright and
is the property of the European Telecommunications Standards Institute
(ETSI). This standard is available from the ETSI publication office
tel. +33 (0)4 92 94 42 58. ETSI has granted a license to United States
Department of Defense to use the C-language software simulation contained
in GSM 06.06 for the purposes of the development of a fixed-point
version of the voice codec Mixed Excitation Linear Prediction (MELP).
Requests for authorization to make other use of the GSM 06.06 or
otherwise distribute or modify them need to be addressed to the ETSI
Secretariat fax: +33 493 65 47 16.

*/
/***************************************************************************
 *
 *   File Name:  mathdp31.c
 *
 *   Purpose:  Contains functions increased-precision arithmetic operations.
 *
 *      Below is a listing of all the functions in this file.  There
 *      is no interdependence among the functions.
 *
 *      L_mpy_ls()
 *      L_mpy_ll()
 *      isLwLimit()
 *      isSwLimit()
 *
 ***************************************************************************/
/*_________________________________________________________________________
 |                                                                         |
 |                              Include Files                              |
 |_________________________________________________________________________|
*/

#include "mathhalf.h"
#include "typedefs.h"

/****************************************************************************
 *
 *     FUNCTION NAME: isLwLimit
 *
 *     PURPOSE:
 *
 *        Check to see if the input Longword is at the
 *        upper or lower limit of its range.  i.e.
 *        0x7fff ffff or -0x8000 0000
 *
 *        Ostensibly this is a check for an overflow.
 *        This does not truly mean an overflow occurred,
 *        it means the value reached is the
 *        maximum/minimum value representable.  It may
 *        have come about due to an overflow.
 *
 *     INPUTS:
 *
 *       L_In               A Longword input variable
 *
 *
 *     OUTPUTS:             none
 *
 *     RETURN VALUE:        1 if input == 0x7fff ffff or -0x8000 0000
 *                          0 otherwise
 *
 *     KEYWORDS: saturation, limit
 *
 ***************************************************************************/

short  isLwLimit(Longword L_In)
{

  Longword L_ls;
  short  siOut;

  if (L_In != 0)
  {
    L_ls = L_shl(L_In, 1);
    if (L_sub(L_In, L_ls) == 0)
      siOut = 1;
    else
      siOut = 0;
  }
  else
  {
    siOut = 0;
  }
  return (siOut);
}

/****************************************************************************
 *
 *     FUNCTION NAME: isSwLimit
 *
 *     PURPOSE:
 *
 *        Check to see if the input Shortword is at the
 *        upper or lower limit of its range.  i.e.
 *        0x7fff or -0x8000
 *
 *        Ostensibly this is a check for an overflow.
 *        This does not truly mean an overflow occurred,
 *        it means the value reached is the
 *        maximum/minimum value representable.  It may
 *        have come about due to an overflow.
 *
 *     INPUTS:
 *
 *       swIn               A Shortword input variable
 *
 *
 *     OUTPUTS:             none
 *
 *     RETURN VALUE:        1 if input == 0x7fff or -0x8000
 *                          0 otherwise
 *
 *     KEYWORDS: saturation, limit
 *
 ***************************************************************************/

short  isSwLimit(Shortword swIn)
{

  Shortword swls;
  short  siOut;

  if (swIn != 0)
  {
    swls = shl(swIn, 1);
    if (sub(swIn, swls) == 0)          /* logical compare outputs 1/0 */
      siOut = 1;
    else
      siOut = 0;
  }
  else
  {
    siOut = 0;
  }
  return (siOut);

}

/****************************************************************************
 *
 *     FUNCTION NAME: L_mpy_ll
 *
 *     PURPOSE:    Multiply a 32 bit number (L_var1) and a 32 bit number
 *                 (L_var2), and return a 32 bit result.
 *
 *     INPUTS:
 *
 *       L_var1             A Longword input variable
 *
 *       L_var2             A Longword input variable
 *
 *     OUTPUTS:             none
 *
 *     IMPLEMENTATION:
 *
 *        Performs a 31x31 bit multiply, Complexity=24 Ops.
 *
 *        Let x1x0, or y1y0, be the two constituent halves
 *        of a 32 bit number.  This function performs the
 *        following:
 *
 *        low = ((x0 >> 1)*(y0 >> 1)) >> 16     (low * low)
 *        mid1 = [(x1 * (y0 >> 1)) >> 1 ]       (high * low)
 *        mid2 = [(y1 * (x0 >> 1)) >> 1]        (high * low)
 *        mid =  (mid1 + low + mid2) >> 14      (sum so far)
 *        output = (y1*x1) + mid                (high * high)
 *
 *
 *     RETURN VALUE:        A Longword value
 *
 *     KEYWORDS: mult,mpy,multiplication
 *
 ***************************************************************************/

Longword L_mpy_ll(Longword L_var1, Longword L_var2)
{
  Shortword swLow1,
         swLow2,
         swHigh1,
         swHigh2;
  Longword L_varOut,
         L_low,
         L_mid1,
         L_mid2,
         L_mid;


  swLow1 = shr(extract_l(L_var1), 1);
  swLow1 = SW_MAX & swLow1;

  swLow2 = shr(extract_l(L_var2), 1);
  swLow2 = SW_MAX & swLow2;
  swHigh1 = extract_h(L_var1);
  swHigh2 = extract_h(L_var2);

  L_low = L_mult(swLow1, swLow2);
  L_low = L_shr(L_low, 16);

  L_mid1 = L_mult(swHigh1, swLow2);
  L_mid1 = L_shr(L_mid1, 1);
  L_mid = L_add(L_mid1, L_low);

  L_mid2 = L_mult(swHigh2, swLow1);
  L_mid2 = L_shr(L_mid2, 1);
  L_mid = L_add(L_mid, L_mid2);

  L_mid = L_shr(L_mid, 14);
  L_varOut = L_mac(L_mid, swHigh1, swHigh2);

  return (L_varOut);
}

/****************************************************************************
 *
 *     FUNCTION NAME: L_mpy_ls
 *
 *     PURPOSE:    Multiply a 32 bit number (L_var2) and a 16 bit
 *                 number (var1) returning a 32 bit result. L_var2
 *                 is truncated to 31 bits prior to executing the
 *                 multiply.
 *
 *     INPUTS:
 *
 *       L_var2             A Longword input variable
 *
 *       var1               A Shortword input variable
 *
 *     OUTPUTS:             none
 *
 *     RETURN VALUE:        A Longword value
 *
 *     KEYWORDS: mult,mpy,multiplication
 *
 ***************************************************************************/

Longword L_mpy_ls(Longword L_var2, Shortword var1)
{
  Longword L_varOut;
  Shortword swtemp;

  swtemp = shr(extract_l(L_var2), 1);
  swtemp = (short) 32767 & (short) swtemp;

  L_varOut = L_mult(var1, swtemp);
  L_varOut = L_shr(L_varOut, 15);
  L_varOut = L_mac(L_varOut, var1, extract_h(L_var2));
  return (L_varOut);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩理论片一区二区| 午夜精品久久久久久久| 午夜不卡av免费| 丁香婷婷深情五月亚洲| 国产精品伦理一区二区| 午夜成人在线视频| 色天使色偷偷av一区二区| 久久久久久亚洲综合| 免费观看91视频大全| 色欧美乱欧美15图片| 中文字幕av一区二区三区免费看| 免费成人av在线| 9191久久久久久久久久久| 亚洲视频中文字幕| 成人av在线电影| 日本一区二区在线不卡| 国产精品一区2区| 久久综合网色—综合色88| 日韩成人av影视| 欧美剧情片在线观看| 一区二区高清免费观看影视大全 | 韩国女主播成人在线观看| 一本久久精品一区二区| 日韩理论电影院| 成人性色生活片| 中文字幕在线不卡| 懂色av噜噜一区二区三区av| 国产清纯在线一区二区www| 韩国欧美国产1区| 精品福利在线导航| 韩国视频一区二区| 久久久久国产一区二区三区四区| 国产专区综合网| 日本一区二区三区久久久久久久久不 | 欧美激情一区三区| 丁香天五香天堂综合| 日本一区二区电影| 成人av动漫在线| 国产精品二区一区二区aⅴ污介绍| 成人天堂资源www在线| 国产精品国产馆在线真实露脸| 成人免费视频播放| 亚洲精品国产a| 欧美日韩综合色| 免费观看在线综合色| 精品国产乱码久久久久久闺蜜| 精品制服美女丁香| 中文字幕欧美区| 色悠悠久久综合| 日本伊人色综合网| 久久久午夜精品理论片中文字幕| 懂色av一区二区在线播放| 亚洲另类色综合网站| 精品视频全国免费看| 久久精品国产免费| 国产精品色噜噜| 欧美日韩中文字幕一区| 亚洲精品v日韩精品| 亚洲综合色婷婷| 色综合天天综合| 亚洲国产美女搞黄色| 在线观看91av| 国产成人小视频| 亚洲综合色成人| av在线这里只有精品| 夜夜嗨av一区二区三区四季av| 欧美酷刑日本凌虐凌虐| 国产夫妻精品视频| 亚洲午夜久久久久久久久久久| 日韩免费在线观看| 91色porny| 蓝色福利精品导航| 亚洲精品少妇30p| 欧美电视剧免费全集观看| 91在线观看一区二区| 美女网站一区二区| 亚洲日本va午夜在线影院| 日韩一区二区免费视频| 97久久精品人人爽人人爽蜜臀 | 亚洲激情综合网| 精品久久久久久综合日本欧美 | 日韩精品专区在线影院重磅| 91视频精品在这里| 国产专区综合网| 日韩中文字幕91| 亚洲欧美视频在线观看视频| 久久综合九色综合欧美就去吻| 在线精品视频免费观看| 国产91清纯白嫩初高中在线观看| 秋霞电影网一区二区| 一区二区在线观看免费| 日本一区二区成人| 久久久精品欧美丰满| 91精品在线一区二区| 欧美综合欧美视频| 91麻豆免费观看| 国产99精品在线观看| 韩国精品主播一区二区在线观看| 亚洲第一成人在线| 亚洲精品视频免费看| 亚洲天堂免费看| 国产精品色婷婷| 欧美极品另类videosde| 欧美经典一区二区| 久久久久国产精品人| 精品人伦一区二区色婷婷| 777午夜精品免费视频| 欧美日韩国产一区二区三区地区| 91视频免费播放| 色婷婷久久综合| 欧美无砖专区一中文字| 欧美日韩一级片网站| 欧美精品久久99| 91 com成人网| 亚洲视频一区二区在线| 中文字幕在线不卡一区二区三区| 国产精品传媒入口麻豆| 亚洲色图视频网| 亚洲视频一二三| 亚洲精品免费在线| 亚洲综合成人在线| 午夜精品福利一区二区蜜股av | 91在线免费看| 色先锋久久av资源部| 91福利视频网站| 欧美日本视频在线| 日韩欧美国产电影| 日本一区二区三级电影在线观看| 国产免费成人在线视频| 亚洲欧美综合在线精品| 夜夜亚洲天天久久| 男女男精品视频| 国产成人免费在线视频| 91性感美女视频| 欧美性xxxxxxxx| 精品久久久久久综合日本欧美| 日本一区二区三区在线观看| 一区二区三区在线不卡| 日韩中文字幕区一区有砖一区| 国产一区激情在线| 91丨porny丨户外露出| 69av一区二区三区| 久久精品欧美日韩| 亚洲在线成人精品| 激情欧美日韩一区二区| 99精品视频在线观看| 69久久夜色精品国产69蝌蚪网| 精品88久久久久88久久久 | 国产日韩欧美一区二区三区乱码| 国产精品久久久久天堂| 婷婷激情综合网| 不卡在线观看av| 欧美精品777| 国产精品高潮呻吟| 麻豆91精品91久久久的内涵| 99r国产精品| 精品捆绑美女sm三区| 亚洲蜜臀av乱码久久精品| 日韩av一二三| 91小视频免费看| 欧美成人女星排名| 亚洲美女一区二区三区| 国产在线一区观看| 欧美男生操女生| 中文字幕一区日韩精品欧美| 麻豆精品一区二区综合av| 91一区在线观看| 国产亚洲欧美日韩在线一区| 日欧美一区二区| 91丨porny丨户外露出| 久久综合久久鬼色中文字| 亚洲mv大片欧洲mv大片精品| 成人av第一页| 久久久久久久久99精品| 奇米综合一区二区三区精品视频| 99在线视频精品| 国产精品视频第一区| 国产一区美女在线| 欧美mv和日韩mv的网站| 日韩国产在线观看一区| 欧美亚洲愉拍一区二区| 综合亚洲深深色噜噜狠狠网站| 国产精品911| 国产日韩欧美精品一区| 国产专区综合网| 精品国产sm最大网站免费看| 天堂成人国产精品一区| 欧美日韩一区二区三区不卡| 亚洲在线视频免费观看| 日本二三区不卡| 国产一区 二区 三区一级| 91超碰这里只有精品国产| 亚洲va天堂va国产va久| 欧美日韩国产美女| 亚洲一区二区三区四区在线观看| 色综合天天综合网天天狠天天| 综合自拍亚洲综合图不卡区| 91在线观看污| 一区二区三区**美女毛片| 欧美午夜精品一区二区三区|