发明名称 System and method for faster division
摘要 A system and method for reducing central processing unit usage when inverting or dividing multiple floating point numbers is disclosed. An example system may receive a plurality of floating point numbers to be inverted as denominator values. The denominator values may be grouped into pairs and multiplied. Products of pairs may be multiplied to produce combinations of products of denominator values until all denominator values have been multiplied together. The product of all denominator values may be inverted using a single division. The combinations of products of denominator values from the multiplications achieved before the division may be multiplied with the inverted product from the division to compute inversions of all denominator values. In some embodiments, an example system may receive a plurality of floating point numbers as numerator values that each correspond to a denominator value. Numerator values may be multiplied with corresponding inversion denominator values to produce division results.
申请公布号 US9311272(B1) 申请公布日期 2016.04.12
申请号 US201314094172 申请日期 2013.12.02
申请人 GOOGLE INC. 发明人 Brown Jorg Anthony
分类号 G06F7/52;G06F17/10 主分类号 G06F7/52
代理机构 Birch, Stewart, Kolasch & Birch, LLP 代理人 Birch, Stewart, Kolasch & Birch, LLP
主权项 1. A computer-implemented method for reducing central processing unit usage when dividing numbers, the method comprising: receiving, using a processor, at least two division operations to compute, consisting of at least four numbers, two numerators and two denominators; building, using a processor, a binary tree from the bottom up, the binary tree including parent and child nodes, a bottom level of the binary tree containing child nodes with values corresponding to the denominator numbers, other child nodes containing values of a product of a combination of the denominator numbers, and a root node, having a value of the product of all denominator numbers; inverting, using a processor, the root node's value and assigning the inverted value to the root node; traversing, using a processor, the binary tree, starting at one level below the root node, in the traversal of each node computing a new value for the node by multiplying the node's current value with the node's parent value and swapping node values to obtain node values at the bottom level of the binary tree corresponding to inverses of the denominator numbers; and multiplying each bottom node value which is an inverse of one of the denominators with the denominator's corresponding numerator; outputting results for each multiplication as final quotients of the at least two division operations.
地址 Mountain View CA US