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

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

?? mathdp31.c

?? 完整的EVRC壓縮解壓縮算法源碼,附帶一個簡單的例子程序。
?? C
字號:
/**********************************************************************
Each of the companies; Lucent, Motorola, Nokia, and Qualcomm (hereinafter 
referred to individually as "Source" or collectively as "Sources") do 
hereby state:

To the extent to which the Source(s) may legally and freely do so, the 
Source(s), upon submission of a Contribution, grant(s) a free, 
irrevocable, non-exclusive, license to the Third Generation Partnership 
Project 2 (3GPP2) and its Organizational Partners: ARIB, CCSA, TIA, TTA, 
and TTC, under the Source's copyright or copyright license rights in the 
Contribution, to, in whole or in part, copy, make derivative works, 
perform, display and distribute the Contribution and derivative works 
thereof consistent with 3GPP2's and each Organizational Partner's 
policies and procedures, with the right to (i) sublicense the foregoing 
rights consistent with 3GPP2's and each Organizational Partner's  policies 
and procedures and (ii) copyright and sell, if applicable) in 3GPP2's name 
or each Organizational Partner's name any 3GPP2 or transposed Publication 
even though this Publication may contain the Contribution or a derivative 
work thereof.  The Contribution shall disclose any known limitations on 
the Source's rights to license as herein provided.

When a Contribution is submitted by the Source(s) to assist the 
formulating groups of 3GPP2 or any of its Organizational Partners, it 
is proposed to the Committee as a basis for discussion and is not to 
be construed as a binding proposal on the Source(s).  The Source(s) 
specifically reserve(s) the right to amend or modify the material 
contained in the Contribution. Nothing contained in the Contribution 
shall, except as herein expressly provided, be construed as conferring 
by implication, estoppel or otherwise, any license or right under (i) 
any existing or later issuing patent, whether or not the use of 
information in the document necessarily employs an invention of any 
existing or later issued patent, (ii) any copyright, (iii) any 
trademark, or (iv) any other intellectual property right.

With respect to the Software necessary for the practice of any or 
all Normative portions of the Enhanced Variable Rate Codec (EVRC) as 
it exists on the date of submittal of this form, should the EVRC be 
approved as a Specification or Report by 3GPP2, or as a transposed 
Standard by any of the 3GPP2's Organizational Partners, the Source(s) 
state(s) that a worldwide license to reproduce, use and distribute the 
Software, the license rights to which are held by the Source(s), will 
be made available to applicants under terms and conditions that are 
reasonable and non-discriminatory, which may include monetary compensation, 
and only to the extent necessary for the practice of any or all of the 
Normative portions of the EVRC or the field of use of practice of the 
EVRC Specification, Report, or Standard.  The statement contained above 
is irrevocable and shall be binding upon the Source(s).  In the event 
the rights of the Source(s) in and to copyright or copyright license 
rights subject to such commitment are assigned or transferred, the 
Source(s) shall notify the assignee or transferee of the existence of 
such commitments.
*******************************************************************/
 
/*======================================================================*/
/*     Enhanced Variable Rate Codec - Bit-Exact C Specification         */
/*     Copyright (C) 1997-1998 Telecommunications Industry Association. */
/*     All rights reserved.                                             */
/*----------------------------------------------------------------------*/
/* Note:  Reproduction and use of this software for the design and      */
/*     development of North American Wideband CDMA Digital              */
/*     Cellular Telephony Standards is authorized by the TIA.           */
/*     The TIA does not authorize the use of this software for any      */
/*     other purpose.                                                   */
/*                                                                      */
/*     The availability of this software does not provide any license   */
/*     by implication, estoppel, or otherwise under any patent rights   */
/*     of TIA member companies or others covering any use of the        */
/*     contents herein.                                                 */
/*                                                                      */
/*     Any copies of this software or derivative works must include     */
/*     this and all other proprietary notices.                          */
/*======================================================================*/
/***************************************************************************
 *
 *   File Name:  mathdp31.c
 *
 *   Purpose:  Contains functions increased-precision arithmetic operations.
 *             Unsigned multiplication is used to calculate interim products.
 *
 *      Below is a listing of all the functions in this file.  There
 *      is no interdependence among the functions.
 *
 *      L_mpy_ls()
 *      L_mpy_ll()
 *
 *
 *  There are two types of double precision multiplies supported in this
 *  file. The default uses unsigned multiplication for the interim steps.
 *  The alternate may be used when compiling the library by defining
 *  "USE_ALT_DP31" on the compile line. See the makefile for more info.
 *
 ***************************************************************************/
/*_________________________________________________________________________
 |                                                                         |
 |                              Include Files                              |
 |_________________________________________________________________________|
*/
#include <math.h>

#include "mathevrc.h"
#include "typedefs.h"

#ifndef USE_ALT_DP31
/****************************************************************************
 *
 *
 *     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 32x32 bit multiply, Complexity=?? ops
 *
 *        Let x1x0, or y1y0, be the two constituent halves
 *        of a 32 bit number.  This function performs the
 *        following:
 *
 *        low = [(unsigned)x0 * (unsigned)y0] <<1;  (low * low)
 *        mid1 = [(unsigned)x0 * y1] << 1;          (low * high)
 *        mid2 = [(unsigned)y0 * x1] << 1;          (low * high)
 *        mid =  [mid1 + mid2] >> 16 ;              (sum so far)
 *        output = (x1*y1)<<1 + mid;                (high * high)
 *
 *        Note that this version uses unsigned * signed to reduce complexity
 *        and gain precision.
 *
 *
 *     RETURN VALUE:        A Longword value
 *
 *     KEYWORDS: mult,mpy,multiplication
 *
 ***************************************************************************/
Longword L_mpy_ll(Longword L_var1, Longword L_var2)
{
	double  aReg;
    Longword lvar;

    OP_COUNT(3);
    /* (unsigned)low1 * (unsigned)low1 */
    aReg = (double)(0xffff & L_var1) * (double)(0xffff & L_var2) * 2.0;

    OP_COUNT(1);
    /* >> 16 */
    aReg = (aReg / 65536);
    aReg = floor(aReg);

    OP_COUNT(1);
    /* (unsigned)low1 * (signed)high2 */
    aReg += (double)(0xffff & L_var1) * ((double)L_shr(L_var2,16)) * 2.0;

    OP_COUNT(1);
    /* (unsigned)low2 * (signed)high1 */
    aReg += (double)(0xffff & L_var2) * ((double)L_shr(L_var1,16)) * 2.0;

    OP_COUNT(1);
    /* >> 16 */
    aReg = (aReg / 65536);
    aReg = floor(aReg);

    OP_COUNT(1);
    /* (signed)high1 * (signed)high2 */
    aReg += (double)(L_shr(L_var1,16)) * (double)(L_shr(L_var2,16)) * 2.0;

    /* saturate result.. */
    lvar = L_saturate(aReg);

    return(lvar);
}

/****************************************************************************
 *
 *     FUNCTION NAME: L_mpy_ls
 *
 *     PURPOSE:    Multiply a 32 bit number (L_var2) and a 16 bit
 *                 number (var1) returning a 32 bit result.
 *
 *     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 L_var1)
{
	double  aReg;
    Longword lvar;

    OP_COUNT(1);
    /* (unsigned)low2 * (signed)low1 */
	aReg  = (double)(0xffff & L_var2) * (double)(L_var1) * 2.0;

    OP_COUNT(1);
    /* >> 16 */
    aReg = (aReg / 65536);
    aReg = floor(aReg);

    OP_COUNT(1);
    /* (signed)high2 * (signed)low1 */
    aReg += ((double)L_shr(L_var2,16)) * (double)(L_var1) * 2.0;

    /* Saturate to 32 bits.. */
    lvar = L_saturate(aReg);
    return(lvar);
}

#else
/* (Use alternate double precision library routines... ) */
/*======================================================================*/
/*  Motorola Diversified Technology Services                            */
/*  EVRC fixed-point C simulation.                                      */
/*  Copyright (C) 1996 Motorola Diversified Technology Services.        */
/*  All rights reserved. Motorola proprietary and confidential.         */
/*----------------------------------------------------------------------*/
/****************************************************************************
 *
 *     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);
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久综合视频| 麻豆精品在线观看| 日韩高清不卡一区二区三区| 国产一区 二区| 欧美日韩国产美| 国产三级精品视频| 婷婷久久综合九色综合绿巨人| 成人性生交大片免费看中文| 日韩精品一区二区三区在线| 亚洲精品成人a在线观看| 国产福利一区二区| 日韩精品一区二区三区在线播放| 一区二区在线观看视频在线观看| 高清shemale亚洲人妖| 日韩欧美国产一区二区三区 | 欧美日韩高清影院| 国产精品久久三| 国产成人啪午夜精品网站男同| 日韩亚洲欧美中文三级| 亚洲成人精品一区二区| 91激情五月电影| 国产精品家庭影院| 国产成+人+日韩+欧美+亚洲| 精品国产乱码久久久久久蜜臀| 日韩精品一二三区| 在线不卡的av| 亚洲国产精品久久一线不卡| 一本久道久久综合中文字幕| 亚洲国产精品成人综合 | 日韩一区二区三| 亚洲一级在线观看| 欧美偷拍一区二区| 午夜免费久久看| 欧美日韩国产a| 男人的j进女人的j一区| 欧美一区二区三区精品| 日本午夜精品一区二区三区电影 | 色综合咪咪久久| 国产精品久久久一区麻豆最新章节| 韩国精品主播一区二区在线观看| 精品日韩av一区二区| 久久国产三级精品| 精品奇米国产一区二区三区| 久久精品国产99国产精品| 欧美www视频| 韩国三级电影一区二区| 国产欧美日韩精品在线| 成人福利视频网站| 亚洲一区二区综合| 欧美蜜桃一区二区三区| 琪琪久久久久日韩精品| 精品国精品国产| 处破女av一区二区| 一级特黄大欧美久久久| 欧美男男青年gay1069videost | 日韩欧美一级二级三级久久久| 免费不卡在线视频| 日韩美一区二区三区| 国产一区二区三区最好精华液| 国产免费观看久久| 在线看日韩精品电影| 日韩成人一区二区| 国产欧美日韩另类一区| 在线精品视频免费播放| 男男gaygay亚洲| 中文字幕欧美日韩一区| 精品1区2区3区| 韩国女主播一区| 一区二区三区四区在线免费观看 | 奇米888四色在线精品| 色哦色哦哦色天天综合| 蜜桃视频在线观看一区二区| 国产精品嫩草久久久久| 91精品国产综合久久福利软件 | 日韩高清欧美激情| 亚洲国产精品99久久久久久久久| 在线欧美小视频| 国产精品白丝jk黑袜喷水| 亚洲午夜久久久久| 中文字幕二三区不卡| 欧美剧在线免费观看网站| 国产**成人网毛片九色 | 欧美日韩专区在线| 成人一区在线观看| 日产欧产美韩系列久久99| 国产精品美女久久久久aⅴ国产馆| 欧美日韩一区高清| 91亚洲男人天堂| 国产精品一区二区91| 日韩成人免费电影| 亚洲中国最大av网站| 国产清纯白嫩初高生在线观看91| 宅男噜噜噜66一区二区66| 99久久精品免费精品国产| 看电影不卡的网站| 亚洲123区在线观看| 综合精品久久久| 国产欧美精品国产国产专区| 91精品国产综合久久婷婷香蕉| 91国偷自产一区二区使用方法| 丁香激情综合国产| 国产精品综合网| 久久99精品久久久久久久久久久久| 一区二区三区欧美日| 国产精品欧美极品| 国产欧美一区二区在线观看| 久久先锋影音av鲁色资源网| 欧美一卡二卡在线观看| 欧美日本韩国一区| 欧美日韩一区成人| 在线观看欧美黄色| 欧美色图在线观看| 欧美丝袜第三区| 欧美性生活一区| 欧美午夜精品电影| 欧美美女直播网站| 欧美精品丝袜中出| 欧美日韩国产色站一区二区三区| 欧美日韩精品一区二区三区| 欧美色综合影院| 欧美一区二区精品久久911| 制服丝袜av成人在线看| 亚洲伊人色欲综合网| 一区二区三区在线观看动漫| 亚洲一区二区3| 亚洲国产一区在线观看| 石原莉奈在线亚洲二区| 日本中文一区二区三区| 麻豆精品久久精品色综合| 精品午夜久久福利影院| 国产成人亚洲综合a∨猫咪| 国产乱一区二区| 99re视频这里只有精品| 在线观看亚洲精品| 91精品国产综合久久国产大片| 精品国产乱码久久久久久夜甘婷婷 | 国产伦精品一区二区三区免费迷| 国产精品综合一区二区三区| 白白色亚洲国产精品| 色婷婷久久久久swag精品| 欧美日韩午夜在线| 精品区一区二区| 1000精品久久久久久久久| 亚洲大片免费看| 国产一区999| 91首页免费视频| 欧美精品1区2区| 欧美激情艳妇裸体舞| 一区二区在线观看免费视频播放| 免费成人av在线播放| 成人中文字幕电影| 欧美日韩美少妇| 国产日韩精品视频一区| 一区二区三区四区亚洲| 久久精品99国产国产精| 一本久道久久综合中文字幕| 日韩欧美国产1| 中文字幕一区二区三区色视频| 亚洲国产日韩一级| 成人自拍视频在线观看| 欧美精品黑人性xxxx| 中文字幕精品三区| 免费在线观看一区二区三区| 成人av在线一区二区| 日韩一区二区三| 一区二区在线观看不卡| 九色综合狠狠综合久久| 欧美视频一区二区三区四区| 国产日韩精品一区| 久热成人在线视频| 91精品福利视频| 国产精品天天摸av网| 久久99国产精品成人| 欧洲色大大久久| 中文字幕在线不卡一区二区三区| 麻豆91精品视频| 欧美艳星brazzers| 国产精品国产三级国产有无不卡| 免费看欧美女人艹b| 欧美亚洲精品一区| 亚洲欧美在线另类| 国产精品一品视频| 欧美成人性福生活免费看| 亚洲午夜激情网页| 在线欧美日韩精品| 亚洲欧洲美洲综合色网| 国产成人综合在线| 久久婷婷国产综合精品青草| 日本女人一区二区三区| 欧美色欧美亚洲另类二区| 粉嫩aⅴ一区二区三区四区| 日韩欧美国产wwwww| 日韩avvvv在线播放| 欧美日本韩国一区| 亚洲18女电影在线观看| 欧美精品日韩一区| 亚洲无线码一区二区三区| 在线观看日韩高清av| 亚洲最大成人综合| 欧美日韩免费视频|