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

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

?? mathhalf.c

?? GSM半數(shù)率源代碼(VSELP) GSM半數(shù)率源代碼(VSELP)
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
 *                     0x8000 0000 <= L_var1 <= 0x7fff ffff.
 *   OUTPUTS:
 *
 *     none
 *
 *   RETURN VALUE:
 *
 *     L_Out
 *                     32 bit long signed integer (Longword) whose value
 *                     falls in the range
 *                     0x8000 0000 <= L_var1 <= 0x7fff ffff.
 *
 *
 *   IMPLEMENTATION:
 *
 *     Arithmetically shift the input right by var2.  This
 *     operation maintains the sign of the input number. If var2 is
 *     negative then an arithmetic shift left (shl) of L_var1 by
 *     -var2 is performed.  See description of L_shl for details.
 *
 *     The input is a 32 bit number, as is the output.
 *
 *     Equivalent to the Full-Rate GSM ">> n" operation.  Note that
 *     ANSI-C does not guarantee operation of the C ">>" or "<<"
 *     operator for negative numbers.
 *
 *   KEYWORDS: shift, arithmetic shift right,
 *
 *************************************************************************/

Longword L_shr(Longword L_var1, Shortword var2)
{

  Longword L_Mask,
         L_Out;

  if (var2 == 0 || L_var1 == 0)
  {
    L_Out = L_var1;
  }
  else if (var2 < 0)
  {
    /* perform a left shift */
    /*----------------------*/
    if (var2 <= -31)
    {
      /* saturate */
      if (L_var1 > 0)
        L_Out = LW_MAX;
      else
        L_Out = LW_MIN;
    }
    else
      L_Out = L_shl(L_var1, -var2);
  }
  else
  {

    if (var2 >= 31)
    {
      if (L_var1 > 0)
        L_Out = 0;
      else
        L_Out = 0xffffffffL;
    }
    else
    {
      L_Mask = 0;

      if (L_var1 < 0)
      {
        L_Mask = ~L_Mask << (32 - var2);
      }

      L_var1 >>= var2;
      L_Out = L_Mask | L_var1;
    }
  }
  return (L_Out);
}

/***************************************************************************
 *
 *   FUNCTION NAME: L_sub
 *
 *   PURPOSE:
 *
 *     Perform the subtraction of the two 32 bit input variables with
 *     saturation.
 *
 *   INPUTS:
 *
 *     L_var1
 *                     32 bit long signed integer (Longword) whose value
 *                     falls in the range
 *                     0x8000 0000 <= L_var1 <= 0x7fff ffff.
 *     L_var2
 *                     32 bit long signed integer (Longword) whose value
 *                     falls in the range
 *                     0x8000 0000 <= L_var2 <= 0x7fff ffff.
 *
 *   OUTPUTS:
 *
 *     none
 *
 *   RETURN VALUE:
 *
 *     L_Out
 *                     32 bit long signed integer (Longword) whose value
 *                     falls in the range
 *                     0x8000 0000 <= L_var1 <= 0x7fff ffff.
 *
 *   IMPLEMENTATION:
 *
 *     Perform the subtraction of the two 32 bit input variables with
 *     saturation.
 *
 *     L_Out = L_var1 - L_var2
 *
 *     L_Out is set to 0x7fff ffff if the operation results in an
 *     overflow.  L_Out is set to 0x8000 0000 if the operation
 *     results in an underflow.
 *
 *   KEYWORDS: sub, subtraction
 *
 *************************************************************************/
Longword L_sub(Longword L_var1, Longword L_var2)
{
  Longword L_Sum;

  /* check for overflow */
  if ((L_var1 > 0 && L_var2 < 0) || (L_var1 < 0 && L_var2 > 0))
  {
    if (L_var2 == LW_MIN)
    {
      L_Sum = L_add(L_var1, LW_MAX);
      L_Sum = L_add(L_Sum, 1);
    }
    else
      L_Sum = L_add(L_var1, -L_var2);
  }
  else
  {                                    /* no overflow possible */
    L_Sum = L_var1 - L_var2;
  }
  return (L_Sum);
}

/***************************************************************************
 *
 *   FUNCTION NAME:mac_r
 *
 *   PURPOSE:
 *
 *     Multiply accumulate and round.  Fractionally multiply two 16
 *     bit numbers together with saturation.  Add that result to
 *     the 32 bit input with saturation.  Finally round the result
 *     into a 16 bit number.
 *
 *
 *   INPUTS:
 *
 *     var1
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range 0xffff 8000 <= var1 <= 0x0000 7fff.
 *     var2
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range 0xffff 8000 <= var2 <= 0x0000 7fff.
 *     L_var3
 *                     32 bit long signed integer (Longword) whose value
 *                     falls in the range
 *                     0x8000 0000 <= L_var2 <= 0x7fff ffff.
 *
 *   OUTPUTS:
 *
 *     none
 *
 *   RETURN VALUE:
 *
 *     swOut
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range
 *                     0xffff 8000 <= swOut <= 0x0000 7fff.
 *
 *   IMPLEMENTATION:
 *
 *     Fractionally multiply two 16 bit numbers together with
 *     saturation.  The only numbers which will cause saturation on
 *     the multiply are 0x8000 * 0x8000.
 *
 *     Add that result to the 32 bit input with saturation.
 *     Round the 32 bit result by adding 0x0000 8000 to the input.
 *     The result may overflow due to the add.  If so, the result
 *     is saturated.  The 32 bit rounded number is then shifted
 *     down 16 bits and returned as a Shortword.
 *
 *     Please note that this is not a true multiply accumulate as
 *     most processors would implement it.  The 0x8000*0x8000
 *     causes and overflow for this instruction.  On most
 *     processors this would cause an overflow only if the 32 bit
 *     input added to it were positive or zero.
 *
 *   KEYWORDS: mac, multiply accumulate, macr
 *
 *************************************************************************/

Shortword mac_r(Longword L_var3, Shortword var1, Shortword var2)
{
  return (round(L_add(L_var3, L_mult(var1, var2))));
}

/***************************************************************************
 *
 *   FUNCTION NAME:  msu_r
 *
 *   PURPOSE:
 *
 *     Multiply subtract and round.  Fractionally multiply two 16
 *     bit numbers together with saturation.  Subtract that result from
 *     the 32 bit input with saturation.  Finally round the result
 *     into a 16 bit number.
 *
 *
 *   INPUTS:
 *
 *     var1
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range 0xffff 8000 <= var1 <= 0x0000 7fff.
 *     var2
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range 0xffff 8000 <= var2 <= 0x0000 7fff.
 *     L_var3
 *                     32 bit long signed integer (Longword) whose value
 *                     falls in the range
 *                     0x8000 0000 <= L_var2 <= 0x7fff ffff.
 *
 *   OUTPUTS:
 *
 *     none
 *
 *   RETURN VALUE:
 *
 *     swOut
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range
 *                     0xffff 8000 <= swOut <= 0x0000 7fff.
 *
 *   IMPLEMENTATION:
 *
 *     Fractionally multiply two 16 bit numbers together with
 *     saturation.  The only numbers which will cause saturation on
 *     the multiply are 0x8000 * 0x8000.
 *
 *     Subtract that result from the 32 bit input with saturation.
 *     Round the 32 bit result by adding 0x0000 8000 to the input.
 *     The result may overflow due to the add.  If so, the result
 *     is saturated.  The 32 bit rounded number is then shifted
 *     down 16 bits and returned as a Shortword.
 *
 *     Please note that this is not a true multiply accumulate as
 *     most processors would implement it.  The 0x8000*0x8000
 *     causes and overflow for this instruction.  On most
 *     processors this would cause an overflow only if the 32 bit
 *     input added to it were positive or zero.
 *
 *   KEYWORDS: mac, multiply accumulate, macr
 *
 *************************************************************************/

Shortword msu_r(Longword L_var3, Shortword var1, Shortword var2)
{
  return (round(L_sub(L_var3, L_mult(var1, var2))));
}

/***************************************************************************
 *
 *   FUNCTION NAME: mult
 *
 *   PURPOSE:
 *
 *     Perform a fractional multipy of the two 16 bit input numbers
 *     with saturation and truncation.
 *
 *   INPUTS:
 *
 *     var1
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range 0xffff 8000 <= var1 <= 0x0000 7fff.
 *     var2
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range 0xffff 8000 <= var2 <= 0x0000 7fff.
 *
 *   OUTPUTS:
 *
 *     none
 *
 *   RETURN VALUE:
 *
 *     swOut
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range
 *                     0xffff 8000 <= swOut <= 0x0000 7fff.
 *
 *   IMPLEMENTATION:
 *
 *     Perform a fractional multipy of the two 16 bit input
 *     numbers.  If var1 == var2 == -0x8000, output 0x7fff.
 *     Otherwise output var1*var2 >> 15.  The output is a
 *     16 bit number.
 *
 *   KEYWORDS: mult, mulitply, mpy
 *
 *************************************************************************/

Shortword mult(Shortword var1, Shortword var2)
{
  Longword L_product;
  Shortword swOut;

  L_product = L_mult(var1, var2);
  swOut = extract_h(L_product);
  return (swOut);
}

/***************************************************************************
 *
 *   FUNCTION NAME: mult_r
 *
 *   PURPOSE:
 *
 *     Perform a fractional multipy and round of the two 16 bit
 *     input numbers with saturation.
 *
 *   INPUTS:
 *
 *     var1
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range 0xffff 8000 <= var1 <= 0x0000 7fff.
 *     var2
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range 0xffff 8000 <= var2 <= 0x0000 7fff.
 *
 *   OUTPUTS:
 *
 *     none
 *
 *   RETURN VALUE:
 *
 *     swOut
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range
 *                     0xffff 8000 <= swOut <= 0x0000 7fff.
 *
 *   IMPLEMENTATION:
 *
 *     This routine is defined as the concatenation of the multiply
 *     operation and the round operation.
 *
 *     The fractional multiply (L_mult) produces a saturated 32 bit
 *     output.  This is followed by a an add of 0x0000 8000 to the
 *     32 bit result.  The result may overflow due to the add.  If
 *     so, the result is saturated.  The 32 bit rounded number is
 *     then shifted down 16 bits and returned as a Shortword.
 *
 *
 *   KEYWORDS: multiply and round, round, mult_r, mpyr
 *
 *************************************************************************/


Shortword mult_r(Shortword var1, Shortword var2)
{
  Shortword swOut;

  swOut = round(L_mult(var1, var2));
  return (swOut);
}

/***************************************************************************
 *
 *   FUNCTION NAME: negate
 *
 *   PURPOSE:
 *
 *     Negate the 16 bit input. 0x8000's negated value is 0x7fff.
 *
 *   INPUTS:
 *
 *     var1
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range 0xffff 8000 <= var1 <= 0x0000 7fff.
 *
 *   OUTPUTS:
 *
 *     none
 *
 *   RETURN VALUE:
 *
 *     swOut
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range
 *                     0xffff 8001 <= swOut <= 0x0000 7fff.
 *
 *   KEYWORDS: negate, negative, invert
 *
 *************************************************************************/

Shortword negate(Shortword var1)
{
  Shortword swOut;

  if (var1 == SW_MIN)
    swOut = SW_MAX;
  else
    swOut = -var1;
  return (swOut);
}

/***************************************************************************
 *
 *   FUNCTION NAME: norm_l
 *
 *   PURPOSE:
 *
 *     Get normalize shift count:
 *
 *     A 32 bit number is input (possiblly unnormalized).  Output
 *     the positive (or zero) shift count required to normalize the
 *     input.
 *
 *   INPUTS:
 *
 *     L_var1
 *                     32 bit long signed integer (Longword) whose value
 *                     falls in the range
 *                     0x8000 0000 <= L_var1 <= 0x7fff ffff.
 *
 *   OUTPUTS:
 *
 *     none
 *
 *   RETURN VALUE:
 *
 *     swOut
 *                     16 bit short signed integer (Shortword) whose value
 *                     falls in the range
 *                     0 <= swOut <= 31
 *
 *
 *
 *   IMPLEMENTATION:
 *
 *     Get normalize shift count:
 *
 *     A 32 bit number is input (possiblly unnormalized).  Output
 *     the positive (or zero) shift count required to normalize the
 *     input.
 *
 *     If zero in input, return 0 as the shift count.
 *
 *     For non-zero numbers, count the number of left shift
 *     required to get the number to fall into the range:
 *
 *     0x4000 0000 >= normlzd number >= 0x7fff ffff (positive number)
 *     or
 *     0x8000 0000 <= normlzd number < 0xc000 0000 (negative number)
 *
 *     Return the number of shifts.
 *
 *     This instruction corresponds exactly to the Full-Rate "norm"
 *     instruction.
 *
 *   KEYWORDS: norm, normalization
 *
 *************************************************************************/

Shortword norm_l(Longword L_var1)
{

  Shortword swShiftCnt;

  if (L_var1 != 0)
  {
    if (!(L_var1 & LW_SIGN))
    {

      /* positive input */
      for (swShiftCnt = 0; !(L_var1 <= LW_MAX && L_var1 >= 0x40000000L);
           swShiftCnt++)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区在线观看麻豆| 日本精品一区二区三区四区的功能| 99久久综合色| 亚洲视频免费看| 99久久久久久| 午夜精品爽啪视频| 91精品国产色综合久久ai换脸| 《视频一区视频二区| 91麻豆国产精品久久| 亚洲国产精品久久不卡毛片| 日本精品一区二区三区四区的功能| 国产精品福利一区二区| 欧美日韩精品一区视频| 国产麻豆精品在线观看| 有码一区二区三区| 精品999在线播放| 97久久精品人人做人人爽50路| 性感美女极品91精品| 国产日本欧美一区二区| 欧美日韩成人一区| 日本韩国一区二区| 国产成人av在线影院| 亚洲午夜精品在线| 国产精品久久久久久亚洲伦| 日韩欧美国产一区二区在线播放 | 裸体一区二区三区| 亚洲欧洲av另类| 久久久精品欧美丰满| 欧美欧美欧美欧美首页| 色吧成人激情小说| 成人v精品蜜桃久久一区| 加勒比av一区二区| 日本vs亚洲vs韩国一区三区| 亚洲成人在线网站| 日韩高清在线不卡| 奇米精品一区二区三区四区| 日韩成人免费看| 日本欧美韩国一区三区| 日本不卡高清视频| 久久99国产精品久久99| 久久99国产精品久久| 麻豆91免费看| 国产一区二区久久| 国产成人精品www牛牛影视| 麻豆成人av在线| 国产成人av自拍| 一本一道综合狠狠老| 欧美伦理电影网| 精品精品欲导航| 亚洲国产精品传媒在线观看| 一区二区视频免费在线观看| 亚洲国产日日夜夜| 狠狠色丁香婷婷综合| 成人av午夜电影| 欧美性猛交xxxxxxxx| 日韩欧美资源站| 成人免费在线播放视频| 天天综合色天天| 国产suv一区二区三区88区| 一本大道久久a久久精二百| 日韩女优av电影在线观看| 国产精品国产三级国产普通话三级 | 国产精品久久久久久久久久久免费看 | 久久久噜噜噜久噜久久综合| 中文字幕一区二| 日韩高清一区在线| 色综合欧美在线| 久久久久久97三级| 日本一不卡视频| 欧美日韩中文另类| 亚洲国产高清不卡| 亚洲激情男女视频| 亚洲国产精品久久久久婷婷884| 欧美精品一区二区三区视频| 成人精品电影在线观看| 制服丝袜亚洲网站| 亚洲一区二区三区爽爽爽爽爽| 粉嫩在线一区二区三区视频| 日韩一区二区免费电影| 亚洲一区二区欧美日韩| eeuss国产一区二区三区| 久久精品视频免费| 国产成a人亚洲| 26uuu国产电影一区二区| 丰满放荡岳乱妇91ww| 日本韩国一区二区三区视频| 亚洲国产精品精华液2区45| 黄一区二区三区| 久久日韩精品一区二区五区| 国产一区二区精品久久99| 久久免费看少妇高潮| 国产成人午夜99999| 中文一区一区三区高中清不卡| 精品一区二区三区蜜桃| 国产欧美日韩精品a在线观看| 国产在线麻豆精品观看| 国产精品久久久久久久岛一牛影视| 国产成人免费视频一区| 亚洲女与黑人做爰| 在线播放91灌醉迷j高跟美女| 日日骚欧美日韩| 亚洲国产成人自拍| 欧美日韩国产影片| 99精品一区二区三区| 欧美aaaaaa午夜精品| 亚洲国产精品ⅴa在线观看| 在线观看亚洲精品| 99久久国产综合精品色伊| 中文字幕一区二| 欧美一级片免费看| 成人国产精品免费观看| 日韩成人午夜电影| 亚洲精品乱码久久久久久久久| 日韩一区二区精品| 欧日韩精品视频| 成人免费av资源| 国产乱码精品一区二区三区五月婷| 一区二区三区中文在线| 中文字幕一区在线观看| 久久美女高清视频| 欧美精品一区二| 日韩情涩欧美日韩视频| 欧美一级日韩一级| 欧美一区二区大片| 99久久er热在这里只有精品66| 国产自产2019最新不卡| 日本在线观看不卡视频| 视频一区视频二区在线观看| 亚洲电影一区二区三区| 亚洲天堂av老司机| 专区另类欧美日韩| 亚洲免费资源在线播放| 一区二区三区中文字幕精品精品| 国产精品夫妻自拍| 亚洲一区二区三区爽爽爽爽爽| 亚洲午夜久久久久| 麻豆久久久久久| 国产成人综合自拍| 成人91在线观看| 欧美影片第一页| 欧美一级黄色片| 国产拍揄自揄精品视频麻豆| 国产精品国产三级国产| 亚洲国产欧美在线| 日韩av成人高清| 成人av集中营| 欧美日韩久久久| 欧美激情一区二区三区蜜桃视频| 亚洲欧美一区二区视频| 五月激情综合网| 成人免费视频免费观看| 欧美猛男超大videosgay| 久久久久久久国产精品影院| 亚洲综合色网站| 成人小视频在线观看| 日韩精品一区二区三区四区| 国产精品女同一区二区三区| 日本不卡123| 欧美体内she精高潮| 国产精品成人免费| 激情六月婷婷综合| 91精品国模一区二区三区| 最新成人av在线| 成人午夜视频网站| 欧美精品一区二区高清在线观看| 亚洲乱码国产乱码精品精98午夜 | 欧美日韩在线播| 亚洲欧美一区二区三区极速播放 | 国产精品久久久久aaaa樱花| 中文字幕佐山爱一区二区免费| 国内成人自拍视频| 日韩一级高清毛片| 亚洲精品高清在线观看| 国产91精品在线观看| 精品视频在线免费观看| 亚洲国产精品综合小说图片区| 成人av电影在线| 亚洲视频一区在线| 欧美在线观看视频在线| 五月婷婷久久综合| 日韩欧美高清一区| 国产精品99精品久久免费| 国产精品久久久久久户外露出 | 538在线一区二区精品国产| 91免费看视频| 91精品国产黑色紧身裤美女| 欧美成人在线直播| 一区二区三区日韩| 成人晚上爱看视频| 日韩欧美自拍偷拍| 麻豆91在线播放| 久久久影视传媒| 色综合视频在线观看| 亚洲电影视频在线| 精品国产乱码久久久久久久久| 精品一区二区久久久| 国产精品青草久久| 91麻豆精品国产91久久久资源速度 | 欧美日韩高清在线播放| 国产一区二区三区国产|