CN1271508C - 产生具有可变精度的对数信号近似 - Google Patents

产生具有可变精度的对数信号近似 Download PDF

Info

Publication number
CN1271508C
CN1271508C CN02807003.8A CN02807003A CN1271508C CN 1271508 C CN1271508 C CN 1271508C CN 02807003 A CN02807003 A CN 02807003A CN 1271508 C CN1271508 C CN 1271508C
Authority
CN
China
Prior art keywords
digital signal
search
circuit
signal
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN02807003.8A
Other languages
English (en)
Other versions
CN1498364A (zh
Inventor
曼吉尔那斯·查特吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nuance Communications Inc
Original Assignee
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of CN1498364A publication Critical patent/CN1498364A/zh
Application granted granted Critical
Publication of CN1271508C publication Critical patent/CN1271508C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders

Abstract

一种用于从具有多个比特值的输入数字信号中产生输出对数数字信号的系统和方法,其中所述输出对数信号具有由所介绍的参数限定的精度。系统(45)包括:搜索电路(50);与所述搜索电路进行信号通信的插值电路(55);与插值电路进行信号通信的移位电路(60);组合器(65),其从接收到的搜索电路输出(75)和接收到的移位电路输出(88)中产生输出对数数字信号(90)。

Description

产生具有可变精度的对数信号近似
技术领域
本发明总的来说涉及计算系统和方法,具体地说涉及执行数字计算的系统和方法,如语音识别系统。
背景技术
在很多数学和工程领域中,存在对能够执行优化算法计算的系统的需要。不幸的是,目前执行对数计算的系统分为三类。第一类是对数的浮点运算,第二类表格化的定点运算,第三类是直接整数运算。
在第一类(浮点运算)中,利用浮点数来表示系统的输入和输出。通常,采用数学协处理器来实现浮点对数系统,数学协处理器具有一些形式的幂级数或牛顿-拉佛森收敛方法(Newton-Raphson method ofconvergence)。结果,这类系统要求复杂的电路以及相当多的处理时间来获得最终结果。
表格化的定点表示系统提供了真对数值(true logarithm value)的比例整数表示。换言之,log(x)将表示为‘y’乘以log(x),其中‘y’是固定的比例因子,以保护精度。这些系统从表格中取出对数的中间值。所述表格在编译时包含对适当比例的log(x)的值。这些类型的系统要求产生和管理具有多个值的表格,并且要求相当多的存储器空间(因为将中间值存储在表格中)以获得最后的值。
最后一类是对对数值的整数截尾。在这种类型中的系统返回变量(x)中的最高位的值。当应用于不要求精度的搜索应用中时,在这种系统中缺乏精度意味着在小数点的右边的所有比特被丢失。因此,需要一种系统和方法,其不需要利用表格和/或乘法,快速地产生带有运行时规定精度的对数值。
发明内容
根据本发明的一个方面,提供了一种用于从具有多个比特值的输入数字信号中产生输出对数数字信号的系统,其中所述输出对数数字信号具有由一参数限定的精度,该系统包括:搜索电路,用于从输入设备接收数字操作信号;插值电路,接收所述搜索电路的输出信号,并且根据所述参数在所述输出信号上计算线性插值;移位电路,根据经所述移位电路和插值电路之间的信号通路从所述插值电路接收的信号以及从所述输入设备接收的数字精度信号,产生移位电路输出;和组合器,其从接收到的搜索电路输出和接收到的移位电路输出中产生输出对数数字信号。
根据本发明的另一个方面,提供了一种用于从具有多个比特值的输入数字信号中产生输出对数数字信号的系统,其中所述输出对数数字信号具有由一参数限定的精度,该系统包括:用于找出所述输入数字信号的最高比特值的比特位置的装置;用于确定自所述最高比特值的位置开始起的偏移和所述参数的装置;用于利用所述参数、从所述输入信号插值出移位内插值的装置;用于将所述偏移、精度移位的内插值以及比特位置进行相加的加法器。
根据本发明的再一个方面,还提供了一种用于从具有多个比特值的输入数字信号中产生输出对数数字信号的方法,其中所述输出对数数字信号具有由一参数限定的精度,该方法包括步骤:搜索所述输入数字信号的最高比特值的比特位置;利用所述参数来确定自所述最高比特值的位置开始的偏移;利用所述参数,从所述输入信号插值偏移精度移位的内插值;和将所述偏移精度移位的内插值以及所述最高比特位置进行相加。
附图说明
结合附图,可以更好地理解如在权利要求书中限定的本发明的发明内容以及下面的详细说明。下面的附图是以示例性的方式被包括的,而不是对上述的本发明进行限制,并且不需要放大。
图1为根据本发明的系统的功能框图。
图2为根据本发明的系统的另一个功能框图。
图3为由在图1和2中介绍的系统所执行的过程的流程图。
图4是利用专用集成电路(ASIC)或者数字信号处理器(DSP)的系统的另一个功能框图。
具体实施方式
本发明提供一种系统和方法,不需要利用表格和/或乘法,产生具有运行时规定的精度的输出对数值。
根据本发明,介绍了一种系统,用于从具有多个比特值的输入数字信号中产生输出对数数字信号,其中,所述输出对数数字信号具有由参数限定的精度。该系统包括:用于找出输入数字信号的最高比特值的比特位置的装置;用于确定从最高比特值的位置的偏移以及所述参数的装置。该系统也包括用于利用所述参数从输入信号开始插入移位的内插值的装置;和用于将偏移、移位的精度内插值和比特位置相加的加法器。
同样,根据本发明,介绍了一种方法,用于从具有多个比特值的输入数字信号中产生输出对数数字信号,其中输出对数信号具有由所介绍的参数限定的精度。该方法包括步骤:找出输入数字信号的最高比特值的比特位置,且确定自最高比特值的位置开始的偏移以及所述参数。该方法还包括步骤:利用所述参数来自所述输入信号插入开始的移位内插值,和将偏移、移位的精度内插值和比特位置相加。
图1说明系统10的功能框图。系统与输入/输出“I/O”设备15进行信号通信。I/O设备15可以有选择地是任何输入和输出设备组合,包括(但不限于)键盘和显示监视器或者打印机。系统10包括中央处理单元“CPU”20、I/O接口25、存储设备30和系统总线35。
CPU可以有选择地为能够处理来自I/O接口25和存储设备30的数据的任何处理器。CPU20的例子包括但不限于诸如Intel 80X86、摩托罗拉公司的Power PC、数字DEC Alpha的集成电路处理器系列,以及来自诸如Hewitt Packard公司、Sun Microsystems、IBM、AMD、Cyrix和其它公司的类似处理器。
存储设备30可以有选择地是诸如随机存储器(RAM)、只读存储器(ROM)、永久存储单元(诸如硬盘)、可以动存储单元(诸如软盘、DVD或CR-ROM)或者类似单元的任何类型的存储器。存储设备30包括控制程序或软件40。软件40可以有选择地是控制系统10的处理的编码指令。I/O接口25和系统总线25都是本技术领域中公知的常规计算机系统类型接口和系统总线。
在运行中,用户(未示出)经I/O设备15将输入值输入到系统10中。CPU 20利用在软件40中的编码指令来处理输入值。然后,系统10产生输出值,并且经I/O接口25和I/O设备15将它们传送到用户。
图2是系统45的另一个例子的方框图。系统45包括搜索电路(search circuit)50、插值电路55、移位电路60和组合电路65。应当理解,可以有选择地利用组合数字电路来实现搜索电路50、插值电路55、移位电路60和组合电路。
搜索电路50从诸如图1的I/O设备15接收数字操作数信号70(对应操作数值,即‘x’对应log2(x)),并且输出对应最高二进制比特值的信号(见图2),最高二进制比特值对应数字操作数信号70。插值电路55接收信号75,并且在信号75上计算线性插值,然后经信号通路80将结果传送到移位电路60。移位电路60接收来自诸如图1的I/O设备15的输入设备的数字精度信号85(对应精度值‘s’)以及图2的插值电路55的输出。移位电路60产生移位电路输出88,其为偏移精度移位的内插值,然后,将该输出传送到组合电路65。组合电路65将移位电路输出88和来自搜索电路50的信号75进行组合,以产生对应Log2(x)的数字输出信号90,该信号被发送到组如图1的I/O设备15的输出设备。
图3说明图1中的系统10执行的处理,系统10可以被在软件40编码指令有选择地控制。图3中的步骤95中,图1的系统10开始进行处理。在步骤100,图1的系统10从I/O设备15接收输入值。输入值是二进制形式的对数的操作数(即,‘x’值对应Log2(x))。在图3的步骤105,图1的系统10通过搜索操作数的最高比特值来确定对操作数(即‘x’)的log2计算的整数部分。本领域普通技术人员应当理解,系统10可以利用各种装置来执行搜索,这些装置包括(但不限于)执行标准的二进制搜索或者移位和搜索操作。步骤105的输出是对值Log2(x)的粗略估计,为基于区间估计(interval estimation)之上的整数精度。在图3的步骤110中,图1的系统10通过对与等于log2计算的小数部分的近似的操作数值执行移位操作来计算在区间估计中的剩余误差进行线性插值。然后,系统10在图3的步骤115中接收来自I/O设备15的精度值(即‘s’)。在步骤120中,图1的系统10对与偏移精度移位的内插值的已移位的操作值执行精度移位,将得到的小数和整数求和log2值映射到在图3的步骤115中输入的精度范围。然后,图1的系统10以数学方式将偏移移位的内插值与在步骤125中的二进制搜索结果进行组合。所述组合值近似等于在图3中的步骤95中的输入的值的log2的值。得到0.03125的峰值误差,其为间隔[24000]上的误差。然后,在步骤130中,系统10将组合的结果输出到I/O设备,并且流程结束于步骤135。应当理解,所介绍的流程等价于图2的系统45执行的流程。
还应当理解,为了用当前技术达到要求的性能,本发明的优选实施例以专门的电路来进行原理上实现。然而,还可以使用能够产生图2的处理步骤的通用可编程电路来实现本发明执行的功能。作为对本发明的流程的实现例子,提供了如下的伪码例子,其可以有选择地是C编程语言或者其它等价的编程语言。
    /********************************************************
****

    *Implementation of Log2()employing loops for binary bit search

    *y=Log2(n,numbits2scale)

    *get linear interpolated scaled Log2()

    *′x′is the number to take Log2(x),′s′is the number of bits to scale
up

    *i.e.,Log2scaled(2235,7)would return 128*Log2(2235)

    */

    long Log2scaled(long x,long s)

    {

    long j,v=x,f=0;/*declare local variables*/

    for (j=16;j>0;j>>=1)/*perform binary search for the highest set bit*/

    if(x>(1<<j)){f+=j;x>>j;}

    /*Next line is variable precision linear interpolation with offset.

    Shifts are utilized perform multiplications by powers of two.

    Multiply operations are represented by the′<<′symbol while
divides are represented by‘>>’.

    */

    return(f<<s)+(1<<s>>5)+((f>s)?((v+(1<<f)>>(f-s)):

    ((v+(1<<f))<<(s+f)));

    }

    /********************************************************
        <!-- SIPO <DP n="6"> -->
        <dp n="d6"/>
****

    *Implementation of Log2()employing if statements for binary bit
seareh

    *y=Log2(n,numbits2scale)

    *get linear interpolated scaled Log2()

    *′x′is the numberto take Log2(x),′s′is the number of bits to scale
up

    *i.e.,Log2scaled(2235,7)would return 128*Log2(2235)

    */

    long Log2scaled(long x,long s)

    {

    long v=x,f=0;/*declare local variables*/

    if(x>(1<<16)){f+=16;x>>=16;}/*perform binary search for highest
set bit*/

    if(x>(1<<8)){f+=8;x>>=8;}

    if(x>(1<<4)){f+=4;x>>=4;}

    if(x>(1<<2)){f+=2;x>>=2;}

    if(x>(1<<1)){f++;}

    /*Next line is variable precision linear interpolation with
offset.

    Shifts are utilized perform multiplications by powers of two.

    Multiply operations are represented by the′<<′symbol while
divides are represented by‘>>’.
    */

    return(f<<s)+(1<<s>>5)+((f>s)?((v+(1<<f))>>(f+s)):

          ((v+(1<<f))<<(s+f)));

    }
虽然上述例子说明了用来获得基底为2的对数值,可以通过按比例放大(scaling)对数log2(x)的输出,容易地将上述处理扩展到其它的公共基底,诸如自然对数“Ln(x)”或者十(10)作为基底的对数“log10(x)”,并且将它转换为其它的基底。这是通过将log2(x)除以等于log2(n)的常数来实现的,其中,n是所希望的基底。作为利用根据本发明的比例因子来实现处理的其它一对例子,提供了如下的伪码例子,其可以有选择地是C编程语言或者其它等价的编程语言。
    /********************************************************
***

    *Implementation of Log()to other bases employing loops for binary
bit search

    *In this case the logarithmic base is chosen to be′e′or the natural
logarithm.

    *y=Ln(n,numbits2scale)

    *get linear interpolated scaled Ln()

    *′x′is the number to take Ln(x),′s′is the number of bits to scale up

    *i.e.,Lnscaled(2235,7)would return 128*Log2(2235)

    */

    long Lnscaled(long x,long s)

    {

    long j,v=x,f=0;/*declare local variables*/

    for(j=16;j>0;j>>=1)/*perform binary search for highest set bit*/

         if(x>(1<<j))){f+=j;x>>=j;}

    /*Next line is variable precision linear interpolation with offset.

    Shifts are utilized perform multiplications by powers of two.

    Multiply operations are represented by the′<<′while divides are
represented by‘>>’.

    */

    return(f<<s)+(1<<s>>5)+((f>s)?((v+(1<<f))>>(f-s)):

          ((v+(1<<f))<<(s+f)));
        <!-- SIPO <DP n="8"> -->
        <dp n="d8"/>
    /*Next line converts from Log2(x)to Ln by computing
log2(x)/log2(e).*/

    return(v>>1)+(v>>2)-(v>>4)+(v>>7)-(v>>9)-(v>>12)+(v>>15);

    }

    /********************************************************
***

    *Implementation of Log()to other bases employing if statements for
binay bit search

    *In this case the logarithmic base is chosen to be′e′or the naturallogarithm.

    *y=Ln(n,numbits2scale)

*get linear interpolated scaled Ln()

    *′x′is the number to take Ln(x),′s′is the number of bits to scale up
    *i.e.,Lnscaled(2235,7)would return 128*Log2(2235)

    */

    long Lnscaled(long x,long s)

    {

    long v=x,f=0;/*declare local variables*/

    if(x>(1<<16)){f+=16;x>>=16;}/*perform binary search for highest
set bit*/

    if(x>(1<<8)){f+=8;x>>=8;}

    if(x>(1<<4){f+=4;x>>=4;}

    if(x>(1<<2)){f+=2;x>>=2;}

    if(x>(1<<1)){f++;}

    /*Next line is variable precision linear interpolation with offset.

    Shifts are utilized perform multiplications by powers of two.

    Multiply operations are represented by the′<<′symbol while divides
are represented by‘>>’.
        <!-- SIPO <DP n="9"> -->
        <dp n="d9"/>
    */

    return(f<<s)+(1<<s>>5)+((f>s)?((v+(1<<f))>>(f+s)):

    ((v+(1<<f))<<((s+f)));

    /*Next line converts from Log2(x)to Ln by computing
log2(x)/log2(e).*/

    return(v>>1)+(v>>2)-(v>>4)+(v>>7)-(v>>9)-(v>>12)+(v>>15);

    }
图4是根据本发明的系统140的框图,利用数字信号处理器(DSP)或者专用集成电路(ASIC)芯片145。应当理解,系统140可以有选择地以软件、硬件或者它们的组合来实现。作为例子,可以用在控制器单元155中的存储器中存储的软件150来实现。控制器单元155经通信链路160(其可以是系统总线)与DSP或者ASIC芯片145进行信号通信。软件150配置并且驱动DSP或者ASIC芯片145,并且执行图3中介绍的步骤。
图1的软件40诸如计算机程序包括用于实现逻辑功能的可执行指令的顺序列表。软件40可以有选择地嵌入在任何计算机可读介质中,可以被指令执行系统、装置、或设备,诸如基于计算机的系统、包含处理器的系统使用或者与它们结合,或者嵌入在其它可以有选择地从指令执行系统、装置或设备获取指令并且执行指令的系统所使用或者与它们结合。在本文中,“计算机可读介质”指的是任何可以包含、存储、通信、传播、传输程序的装置,被指令执行系统、装置或者设备所使用或与它们结合。例如,计算机可读介质可以有选择地是(但不限于)电子、磁、光、电磁、红外或者半导体系统、装置、设备或者传播介质。计算机可读介质的更具体的例子(非穷尽列表)包括便携式计算机磁盘(磁)、RAM(电子)、只读存储器(ROM)(电子)、可擦除可编程只读存储器(EPROM或者闪存)(电子)、光纤(光)和便携式只读光盘(光)。注意,计算机可读介质甚至可以是可在其上打印程序的纸件或其它合适的介质,因为程序可以被电子捕获,例如经光扫描纸件或者其它介质,然后进行编译、解释或者如需要以适当方式进行处理,且然后存储在计算机存储器中。
虽然上面以某些实现或者实施例介绍了本发明,为了达到说明的目的,进行了很多介绍。因此,前述仅仅说明了本发明的原理。例如,本发明可以具有没有背离本发明的精神和本质特征的特定形式。所介绍的结构是说明性的而不是限制性的。对于本领域普通技术人员来说,在不背离本发明的基本原理的之下,可以想到其它的实现或者实施例以及可以改变在本申请中介绍的某些细节。因此,可以理解,本领域普通技术人员可以进行实施各种结构,尽管没有在此介绍和图示,实现本发明的原理。因此,它们均在本发明的范围和精神之内。

Claims (13)

1.一种用于从具有多个比特值的输入数字信号中产生输出对数数字信号的系统,其中所述输出对数数字信号具有由一参数限定的精度,该系统包括:
搜索电路,用于从输入设备接收数字操作信号;
插值电路,接收所述搜索电路的输出信号,并且根据所述参数在所述输出信号上计算线性插值;
移位电路,根据经所述移位电路和插值电路之间的信号通路从所述插值电路接收的信号以及从所述输入设备接收的数字精度信号,产生移位电路输出;和
组合器,其从接收到的搜索电路输出和接收到的移位电路输出中产生输出对数数字信号。
2.如权利要求1所述的系统,其中所述搜索电路是一种组合逻辑电路,其能够对所述输入数字信号进行标准二进制搜索。
3.如权利要求1所述的系统,其中所述搜索电路是一种组合逻辑电路,其能够对所述输入数字信号进行移位和搜索操作。
4.如权利要求1所述的系统,其中所述搜索电路、插值电路、移位电路和组合器都被集成在一信号集成电路中。
5.如权利要求4所述的系统,其中,所述信号集成电路是专用集成电路。
6.一种用于从具有多个比特值的输入数字信号中产生输出对数数字信号的系统,其中所述输出对数数字信号具有由一参数限定的精度,该系统包括:
用于查找所述输入数字信号的最高比特值的比特位置的装置;
用于确定自所述最高比特值的位置开始起的偏移和所述参数的装置;
用于利用所述参数、从所述输入信号插值出移位内插值的装置;
用于将所述偏移、精度移位的内插值以及比特位置进行相加的加法器。
7.如权利要求6所述的系统,其中,所述用于插值的装置一种组合逻辑电路,能够根据所述参数对来自所述用于查找的装置的输出进行线性插值计算。
8.如权利要求7所述的系统,其中所述用于查找的装置是一种组合逻辑电路,其能够对所述输入数字信号进行标准二进制搜索。
9.如权利要求7所述的系统,其中所述用于查找的装置是一种组合逻辑电路,其能够对所述输入数字信号进行移位和搜索操作。
10.一种用于从具有多个比特值的输入数字信号中产生输出对数数字信号的方法,其中所述输出对数数字信号具有由一参数限定的精度,该方法包括步骤:
搜索所述输入数字信号的最高比特值的比特位置;
利用所述参数来确定自所述最高比特值的位置开始的偏移;
利用所述参数,从所述输入信号插值偏移精度移位的内插值;和
将所述偏移精度移位的内插值以及所述最高比特位置进行相加。
11.如权利要求10所述的方法,其中,所述插值步骤进一步包括:根据所述参数对所述最高比特值进行线性插值计算。
12.如权利要求11所述的方法,其中所述搜索步骤进一步包括:对所述输入数字信号进行标准二进制搜索。
13.如权利要求11所述的方法,其中所述搜索步骤进一步包括:对所述输入数字信号进行移位和搜索操作。
CN02807003.8A 2001-03-22 2002-03-05 产生具有可变精度的对数信号近似 Expired - Fee Related CN1271508C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/815,033 US6502118B1 (en) 2001-03-22 2001-03-22 Fast system and method for producing a logarithmic signal approximation with variable precision
US09/815,033 2001-03-22

Publications (2)

Publication Number Publication Date
CN1498364A CN1498364A (zh) 2004-05-19
CN1271508C true CN1271508C (zh) 2006-08-23

Family

ID=25216673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN02807003.8A Expired - Fee Related CN1271508C (zh) 2001-03-22 2002-03-05 产生具有可变精度的对数信号近似

Country Status (4)

Country Link
US (1) US6502118B1 (zh)
CN (1) CN1271508C (zh)
GB (1) GB2390197B (zh)
WO (1) WO2002077797A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7712053B2 (en) 1998-12-04 2010-05-04 Tegic Communications, Inc. Explicit character filtering of ambiguous text entry
US7720682B2 (en) 1998-12-04 2010-05-18 Tegic Communications, Inc. Method and apparatus utilizing voice input to resolve ambiguous manually entered text input
US8938688B2 (en) 1998-12-04 2015-01-20 Nuance Communications, Inc. Contextual prediction of user words and user actions
US7881936B2 (en) 1998-12-04 2011-02-01 Tegic Communications, Inc. Multimodal disambiguation of speech recognition
US7679534B2 (en) * 1998-12-04 2010-03-16 Tegic Communications, Inc. Contextual prediction of user words and user actions
CA2392446C (en) 1999-05-27 2009-07-14 America Online Incorporated Keyboard system with automatic correction
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7821503B2 (en) 2003-04-09 2010-10-26 Tegic Communications, Inc. Touch screen and graphical user interface
US7610194B2 (en) 2002-07-18 2009-10-27 Tegic Communications, Inc. Dynamic database reordering system
US7750891B2 (en) 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
US7286115B2 (en) 2000-05-26 2007-10-23 Tegic Communications, Inc. Directional input system with automatic correction
US6678710B1 (en) * 2000-11-03 2004-01-13 Sun Microsystems, Inc. Logarithmic number system for performing calculations in a processor
US7171435B2 (en) * 2002-05-17 2007-01-30 Texas Instruments Incorporated Circuits, systems, and methods implementing approximations for logarithm, inverse logarithm, and reciprocal
US7107300B2 (en) * 2002-05-17 2006-09-12 Texas Instruments Incorporated Circuits, systems, and methods implementing approximations for inverse logarithm
US8583440B2 (en) 2002-06-20 2013-11-12 Tegic Communications, Inc. Apparatus and method for providing visual indication of character ambiguity during text entry
US7080364B2 (en) * 2003-04-28 2006-07-18 Intel Corporation Methods and apparatus for compiling a transcendental floating-point operation
US20050089237A1 (en) * 2003-10-24 2005-04-28 Jaehwa Park Method and apparatus for bezier curve approximation data compression
US7636083B2 (en) * 2004-02-20 2009-12-22 Tegic Communications, Inc. Method and apparatus for text input in various languages
US8095364B2 (en) 2004-06-02 2012-01-10 Tegic Communications, Inc. Multimodal disambiguation of speech recognition
US7475103B2 (en) * 2005-03-17 2009-01-06 Qualcomm Incorporated Efficient check node message transform approximation for LDPC decoder
US8504606B2 (en) 2005-11-09 2013-08-06 Tegic Communications Learner for resource constrained devices
US7587378B2 (en) * 2005-12-09 2009-09-08 Tegic Communications, Inc. Embedded rule engine for rendering text and other applications
US7580925B2 (en) * 2006-04-19 2009-08-25 Tegic Communications, Inc. Efficient storage and search of word lists and other text
US8225203B2 (en) 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
US8201087B2 (en) 2007-02-01 2012-06-12 Tegic Communications, Inc. Spell-check for a keyboard system with automatic correction
US8103499B2 (en) * 2007-03-22 2012-01-24 Tegic Communications, Inc. Disambiguation of telephone style key presses to yield Chinese text using segmentation and selective shifting
US8299943B2 (en) * 2007-05-22 2012-10-30 Tegic Communications, Inc. Multiple predictions in a reduced keyboard disambiguating system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0572695A1 (en) * 1992-06-03 1993-12-08 International Business Machines Corporation A digital circuit for calculating a logarithm of a number
JP2861687B2 (ja) * 1992-12-04 1999-02-24 日本電気株式会社 対数演算回路
US5629884A (en) * 1995-07-28 1997-05-13 Motorola, Inc. Log converter utilizing offset and method of use thereof
US5951629A (en) * 1997-09-15 1999-09-14 Motorola, Inc. Method and apparatus for log conversion with scaling
US6289367B1 (en) * 1998-11-16 2001-09-11 Texas Instruments Incorporated Digital signal processing circuits, systems, and method implementing approximations for logarithm and inverse logarithm

Also Published As

Publication number Publication date
GB2390197B (en) 2005-03-30
GB0321742D0 (en) 2003-10-15
CN1498364A (zh) 2004-05-19
GB2390197A (en) 2003-12-31
WO2002077797A1 (en) 2002-10-03
US6502118B1 (en) 2002-12-31
US20030005006A1 (en) 2003-01-02

Similar Documents

Publication Publication Date Title
CN1271508C (zh) 产生具有可变精度的对数信号近似
US5144574A (en) Modular multiplication method and the system for processing data
CA2008774C (en) Modular multiplication method and the system for processing data
US7698357B2 (en) Modular multiplication with parallel calculation of the look-ahead parameters
JPH0635680A (ja) 対数を計算するディジタル回路及びコンピュータシステムを動作させる方法
US7921149B2 (en) Division and square root arithmetic unit
US5671170A (en) Method and apparatus for correctly rounding results of division and square root computations
JPH08185309A (ja) 4倍精度演算の実行方法
JPH02196328A (ja) 浮動小数点演算装置
GB2278940A (en) Floating point arithmetic unit
Arnold et al. Redundant logarithmic arithmetic
KR100465371B1 (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
US20060184600A1 (en) Residue number system arithmetic operating system, scaling operator, scaling operation method and program and recording medium of the same
US7478363B2 (en) Method for translating a given source program into an object program containing computing expressions
RU2316042C1 (ru) Устройство для умножения чисел по произвольному модулю
Smith Using multiple-precision arithmetic
US5379244A (en) Small-sized, low power consumption multiplication processing device with a rounding recoding circuit for performing high speed iterative multiplication
US8041927B2 (en) Processor apparatus and method of processing multiple data by single instructions
US5602768A (en) Method and apparatus for reducing the processing time required to solve square root problems
Koç A Tutorial on p-adic Arithmetic
US20070180014A1 (en) Sparce-redundant fixed point arithmetic modules
US7266578B2 (en) Method and hardware for computing reciprocal square root and program for the same
US20040254973A1 (en) Rounding mode insensitive method and apparatus for integer rounding
KR100805272B1 (ko) 부호화를 이용하는 곱셈 장치 및 그 방법
Fit-Florea et al. A discrete logarithm number system for integer arithmetic modulo 2^{k}: algorithms and lookup structures

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NIUANSI COMMUNICATION CO., LTD.

Free format text: FORMER OWNER: MOTOROLA INC.

Effective date: 20101008

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: ILLINOIS STATE, USA TO: DELAWARE STATE, USA

TR01 Transfer of patent right

Effective date of registration: 20101008

Address after: Delaware

Patentee after: NUANCE COMMUNICATIONS INC

Address before: Illinois

Patentee before: Motorola Inc.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060823

Termination date: 20170305