Method and apparatus for fast natural log(X) calculation
AssigneeGE Medical Systems Global Technology Company, LLC
InventorsMin Xie, Sharon X. Wang
Life of this patent
Estimating the term…
Abstract
A method for computing a natural logarithm function includes partitioning a mantissa region between 1 and 2 into N equally spaced sub-regions; precomputing a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . ,N−1; selecting N sufficiently large so that, within each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a mantissa of a binary floating point representation of a variable x; and computing a value of log(x) for a binary floating point representation of x stored in a memory of a computing device utilizing the first degree polynomial in m.
Claims24
A method for computing an approximation of a natural logarithm function comprising the steps of:
- partitioning an interval between 1 and 2 into N equally spaced sub-regions;
- precomputing a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . ,N−1;
- selecting N sufficiently large so that, for each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a binary mantissa of a binary floating point representation of a variable x;
- computing a value of log(x) for a binary floating point representation of x stored in a memory of a computing device utilizing the first degree polynomial in the binary mantissa m, wherein log(x) is a function of a distance between the reference point ai and the binary mantissa m;
- and
- generating an image by using the computed value of log(x), wherein x has a binary exponent e in addition to the binary mantissa m;
- and further wherein computing a value of log(x) for the binary floating point representation of x comprises the steps of:
- partitioning the binary mantissa m of a binary representation of x in a memory, the representation of x including a binary exponent e and the binary mantissa m, wherein a first, most significant part of the partition corresponds to a region i and a second, less significant part of the partition corresponds to a region Δx, where Δx is a distance from the binary mantissa m to the reference point
- a
- i
- =
- 1
- +
- i
- +
- 0.5
- N
- ;
- computing an approximation to log(x), using the first degree polynomial in the binary mantissa m and a precomputed value of log(ai), wherein computing an approximation to log(x) comprises the step of computing an approximation written as:
- y=−log(x)≈bi+ciΔx+e×log(2)
- for i=0, . . . ,N−1
- where:
- b
- i
- =
- -
- log
-
- (
- a
- i
- )
- +
- (
- 1
- 4
-
- a
- i
-
- N
- )
- 2
- -
- (
- 1
- +
- 1
- 2
-
- N
- )
-
- 1
- a
- i
- ;
-
- and
- ci=−1/ai;
- precomputing a value for log(2);
- and
- for each i, precomputing each value of bi and ci.
A method for computing an approximation of a natural logarithm function comprising the steps of:
- partitioning an interval between 1 and 2 into N equally spaced sub-regions;
- precomputing a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . , N−1;
- selecting N sufficiently large so that, for each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a binary mantissa of a binary floating point representation of a variable x;
- computing a value of log(x) for a binary floating point representation of x stored in a memory of a computing device utilizing the first degree polynomial in the binary mantissa m, wherein log(x) is a function of a distance between the reference point ai and the binary mantissa m;
- generating an image by using the computed value of log(x), wherein x has a binary exponent e in addition to the binary mantissa m;
- and further wherein computing a value of log(x) for the binary floating point representation of x comprises the steps of:
- partitioning the binary mantissa m of a binary representation of x in a memory, the representation of x including a binary exponent e and the binary mantissa m, wherein a first, most significant part of the partition corresponds to a region i and a second, less significant part of the partition corresponds to a region Δx, where Δx is a distance from the binary mantissa m to the reference point
- a
- i
- =
- 1
- +
- i
- +
- 0.5
- N
- ;
-
- and
- computing an approximation to log(x), using the first degree polynomial in the binary mantissa m and a precomputed value of log(ai);
- and further wherein computing an approximation to log(x) comprises the step of computing an approximation written as:
- y=−log(x)≈bi+ciΔx+e×log(2)
- for i=0, . . . ,N−1
- where:
- b
- i
- =
- -
- log
-
- (
- a
- i
- )
- +
- (
- 1
- 4
-
- a
- i
-
- N
- )
- 2
- -
- (
- 1
- +
- 1
- 2
-
- N
- )
-
- 1
- a
- i
- ;
-
- and
- c1=−1/ai;
- precomputing a value for log(2);
- and
- for each i, precomputing each value of bi and ci;
- and
- said method utilized in a computed tomography (CT) scanner configured to generate an image of an object from acquired projection data of the object.
A computing device comprising a memory in which binary floating point representations of particular numbers are stored, said device being configured to:
- partition an interval between 1 and 2 into N equally spaced sub-regions;
- precompute a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . ,N−1, wherein N is sufficiently large so that, within each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a mantissa of a binary floating point representation of a variable x;
- compute a value of log(x) for a binary floating point representation of x stored in said memory utilizing the first degree polynomial in the binary mantissa m, wherein log(x) is a function of a distance between the reference point ai and the binary mantissa m;
- generate an image by using the computed value of log(x);
- wherein x has a binary exponent e in addition to the binary mantissa m and wherein said device being configured to compute a value of log(x) for the binary floating point representation of x comprises said device being configured to:
- partition the binary mantissa m of a binary representation of x in a memory of said device, the representation of x including a binary exponent e and the binary mantissa m, wherein a first, most significant part of the partition corresponds to a region i and a second, less significant part of the partition corresponds to a region Δx, where Δx is a distance from the binary mantissa m to the reference point
- a
- i
- =
- 1
- +
- i
- +
- 0.5
- N
- ;
-
- and
- compute an approximation to log(x), using a polynomial of first degree in m and a precomputed value of log(ai);
- and further wherein said device being configured to compute the approximation to log(x) comprises said device being configured to compute an approximation written as:
- log
-
- (
- m
- )
- ≈
- log
-
- (
- a
- i
- )
- +
- (
- m
- -
- a
- i
- )
- a
- i
- ;
- where the reference point ai is a closest reference point to the binary mantissa m;
- and
- 1≦ai<2.
A computing device in a computed tomography (CT) scanner and utilized by said CT scanner for calculating logarithms when said CT scanner generates an image of an object from acquired projection data of the object, said computing device comprising a memory in which binary floating point representations of particular numbers are stored, said device being configured to:
- partition an interval between 1 and 2 into N equally spaced sub-regions;
- precompute a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . ,N−1, wherein N is sufficiently large so that, within each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a mantissa of a binary floating point representation of a variable x;
- compute a value of log(x) for a binary floating point representation of x stored in said memory utilizing the first degree polynomial in the binary mantissa m, wherein log(x) is a function of a distance between the reference point ai and the binary mantissa m;
- and
- generate an image by using the computed value of log(x);
- wherein x is stored with a binary exponent e in addition to the binary mantissa m;
- and further wherein said device being configured to compute a value of log(x) for the binary floating point representation of x comprises said device being configured to:
- partition the binary mantissa m of a binary representation of x in a memory, the representation of x including a binary exponent e and the binary mantissa m, wherein a first, most significant part of the partition corresponds to a region i and a second, less significant part of the partition corresponds to a region Δx, where Δx is a distance from mantissa m to reference point
- a
- i
- =
- 1
- +
- i
- +
- 0.5
- N
- ;
-
- and
- compute an approximation to log(x), using a polynomial of first degree in m and a precomputed value of log(ai);
- and further wherein said device being configured to compute an approximation to log(x) comprises said device being configured to compute an approximation written as:
- y=−log(x)≈bi+ciΔx+e×log(2)
- for i=0, . . . ,N−1
- where:
- b
- i
- =
- -
- log
-
- (
- a
- i
- )
- +
- (
- 1
- 4
-
- a
- i
-
- N
- )
- 2
- -
- (
- 1
- +
- 1
- 2
-
- N
- )
-
- 1
- a
- i
- ;
-
- and
- ci=−1/ai;
- and said device is further configured to precompute a value for log(2);
- and
- for each i, to precompute each value of bi and ci.
A computing device comprising a memory in which binary floating point representations of particular numbers are stored, said device being configured to:
- partition an interval between 1 and 2 into N equally spaced sub-regions;
- precompute a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . ,N−1, wherein N is sufficiently large so that, within each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a mantissa of a binary floating point representation of a variable x;
- compute a value of log(x) for a binary floating point representation of x stored in said memory utilizing the first degree polynomial in the binary mantissa m, wherein log(x) is a function of a distance between the reference point ai and the binary mantissa m;
- and
- generate an image by using the computed value of log(x), wherein x has a binary exponent e in addition to the binary mantissa m;
- and wherein said device being configured to compute a value of log(x) for the binary floating point representation of x comprises said device being configured to:
- partition the binary mantissa m of a binary representation of x in a memory of said device, the representation of x including a binary exponent e and the binary mantissa m, wherein a first, most significant part of the partition corresponds to a region i and a second, less significant part of the partition corresponds to a region Δx, where Δx is a distance from the binary mantissa m to the reference point
- a
- i
- =
- 1
- +
- i
- +
- 0.5
- N
- ;
-
- and
- compute an approximation to log(x), using a polynomial of first degree in m and a precomputed value of log(ai);
- and further wherein said device being configured to compute an approximation to log(x) comprises said device being configured to compute an approximation written as:
- y=−log(x)≈bi+ciΔx+e×log(2)
- for i=0, . . . ,N−1
- where:
- b
- i
- =
- -
- log
-
- (
- a
- i
- )
- +
- (
- 1
- 4
-
- a
- i
-
- N
- )
- 2
- -
- (
- 1
- +
- 1
- 2
-
- N
- )
-
- 1
- a
- i
- ;
-
- and
- ci=−1/ai;
- and said device further configured to precompute a value for log(2);
- and
- for each i, to precompute each value of bi and ci.
A method for computing an approximation of a natural logarithm function comprising the steps of:
- partitioning an interval between 1 and 2 into N equally spaced sub-regions;
- precomputing a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . ,N−1;
- selecting N sufficiently large so that, for each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a binary mantissa of a binary floating point representation of a variable x;
- computing a value of log(x) for a binary floating point representation of x stored in a memory of a computing device utilizing the first degree polynomial in the binary mantissa m, wherein log(x) is a function of a distance between the reference point ai and the binary mantissa m;
- generating an image by using the computed value of log(x);
- wherein x has a binary exponent e in addition to the binary mantissa m;
- and further wherein computing a value of log(x) for the binary floating point representation of x comprises the steps of:
- partitioning the binary mantissa m of a binary representation of x in a memory, the representation of x including a binary exponent e and the binary mantissa m, wherein a first, most significant part of the partition corresponds to a region i and a second, less significant part of the partition corresponds to a region Δx, where Δx is a distance from the binary mantissa m to the reference point
- a
- i
- =
- 1
- +
- i
- +
- 0.5
- N
- ;
-
- and
- computing an approximation to log(x), using the first degree polynomial in the binary mantissa m and a precomputed value of log(ai);
- wherein computing the approximation to log(x) comprises the step of computing an approximation written as:
- log
-
- (
- m
- )
- ≈
- log
-
- (
- a
- i
- )
- +
- (
- m
- -
- a
- i
- )
- a
- i
- ;
- where the reference point ai is a closest reference point to the binary mantissa m of x;
- and
- 1≦ai<2.
A method for computing an approximation of a natural logarithm function comprising the steps of:
- partitioning an interval between 1 and 2 into N equally spaced sub-regions;
- precomputing a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . ,N−1;
- selecting N sufficiently large so that, for each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a binary mantissa of a binary floating point representation of a variable x;
- computing a value of log(x) for a binary floating point representation of x stored in a memory of a computing device utilizing the first degree polynomial in the binary mantissa m, wherein log(x) is a function of a distance between the reference point ai and the binary mantissa m;
- and
- generating an image by using the computed value of log(x), wherein x has a binary exponent e in addition to the binary mantissa m;
- and further wherein computing a value of log(x) for the binary floating point representation of x comprises the steps of:
- partitioning the binary mantissa m of a binary representation of x in a memory, the representation of x including a binary exponent e and the binary mantissa m, wherein a first, most significant part of the partition corresponds to a region i and a second, less significant part of the partition corresponds to a region Δx, where Δx is a distance from the binary mantissa m to the reference point
- a
- i
- =
- 1
- +
- i
- +
- 0.5
- N
- ;
-
- and
- computing an approximation to log(x), using the first degree polynomial in the binary mantissa m and a precomputed value of log(ai);
- wherein computing an approximation to log(x) comprises the step of computing an approximation written as:
- y=−log(x)≈bi+ciΔx+e×log(2)
- for i=0, . . . ,N−1
- where:
- b
- i
- =
- -
- log
-
- (
- a
- i
- )
- +
- (
- 1
- 4
-
- a
- i
-
- N
- )
- 2
- -
- (
- 1
- +
- 1
- 2
-
- N
- )
-
- 1
- a
- i
- ;
-
- and
- ci=−1/ai.
A method for computing an approximation of a natural logarithm function comprising the steps of:
- partitioning an interval between 1 and 2 into N equally spaced sub-regions;
- precomputing a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . ,N−1;
- selecting N sufficiently large so that, for each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a binary mantissa of a binary floating point representation of a variable x;
- computing a value of log(x) for a binary floating point representation of x stored in a memory of a computing device utilizing the first degree polynomial in the binary mantissa m, wherein log(x) is a function of a distance between the reference point ai and the binary mantissa m;
- and
- generating an image by using the computed value of log(x), wherein x has a binary exponent e in addition to the binary mantissa m;
- wherein said method is utilized in a computed tomography (CT) scanner for generating an image of an object from acquired projection data of the object;
- and further wherein computing a value of log(x) for the binary floating point representation of x comprises the steps of:
- partitioning the binary mantissa m of a binary representation of x in a memory, the representation of x including a binary exponent e and the binary mantissa m, wherein a first, most significant part of the partition corresponds to a region i and a second, less significant part of the partition corresponds to a region Δx, where Δx is a distance from the binary mantissa m to the reference point
- a
- i
- =
- 1
- +
- i
- +
- 0.5
- N
- ;
-
- and
- computing an approximation to log(x), using the first degree polynomial in the binary mantissa m and a precomputed value of log(ai);
- and further wherein computing an approximation to log(x) comprises the step of computing an approximation written as:
- y=−log(x)≈bi+ciΔx+e×log(2)
- for i=0, . . . ,N−1
- where:
- b
- i
- =
- -
- log
-
- (
- a
- i
- )
- +
- (
- 1
- 4
-
- a
- i
-
- N
- )
- 2
- -
- (
- 1
- +
- 1
- 2
-
- N
- )
-
- 1
- a
- i
- ;
-
- and
- ci=−1/ai.
A computing device comprising a memory in which binary floating point representations of particular numbers are stored, said device being configured to:
- partition an interval between 1 and 2 into N equally spaced sub-regions;
- precompute a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . ,N−1, wherein N is sufficiently large so that, within each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a mantissa of a binary floating point representation of a variable x;
- compute a value of log(x) for a binary floating point representation of x stored in said memory utilizing the first degree polynomial in the binary mantissa m, wherein log(x) is a function of a distance between the reference point ai and the binary mantissa m;
- and
- generate an image by using the computed value of log(x), wherein x has a binary exponent e in addition to the binary mantissa m;
- and wherein said device being configured to compute a value of log(x) for the binary floating point representation of x comprises said device being configured to:
- partition the binary mantissa m of a binary representation of x in a memory of said device, the representation of x including a binary exponent e and the binary mantissa m, wherein a first, most significant part of the partition corresponds to a region i and a second, less significant part of the partition corresponds to a region Δx, where Δx is a distance from the binary mantissa m to the reference point
- a
- i
- =
- 1
- +
- i
- +
- 0.5
- N
- ;
-
- and
- compute an approximation to log(x), using a polynomial of first degree in m and a precomputed value of log(ai);
- and further wherein said device being configured to compute an approximation to log(x) comprises said device being configured to compute an approximation written as:
- y=−log(x)≈bi+ciΔx+e×log(2)
- for i=0, . . . ,N−1
- where:
- b
- i
- =
- -
- log
-
- (
- a
- i
- )
- +
- (
- 1
- 4
-
- a
- i
-
- N
- )
- 2
- -
- (
- 1
- +
- 1
- 2
-
- N
- )
-
- 1
- a
- i
- ;
-
- and
- ci=−1/ai.
A computing device comprising a memory in which binary floating point representations of particular numbers are stored, said device being configured to:
- partition an interval between 1 and 2 into N equally spaced sub-regions;
- precompute a reference point ai of each of the N equally spaced sub-regions, where i=0, . . . ,N−1, wherein N is sufficiently large so that, within each sub-region, a first degree polynomial in m computes log(m) to within a preselected degree of accuracy for any m within the sub-region, where m is a mantissa of a binary floating point representation of a variable x;
- compute a value of log(x) for a binary floating point representation of x stored in said memory utilizing the first degree polynomial in the binary mantissa m, wherein log(x) is a function of a distance between the reference point ai and the binary mantissa m;
- and
- generate an image by using the computed value of log(x), wherein x is stored with a binary exponent e in addition to the binary mantissa m;
- said device in a computed tomography (CT) scanner and utilized by said CT scanner for calculating logarithms when said CT scanner generates an image of an object from acquired projection data of the object;
- and further wherein said device being configured to compute a value of log(x) for the binary floating point representation of x comprises said device being configured to:
- partition the binary mantissa m of a binary representation of x in a memory, the representation of x including a binary exponent e and the binary mantissa m, wherein a first, most significant part of the partition corresponds to a region i and a second, less significant part of the partition corresponds to a region Δx, where Δx is a distance from mantissa m to reference point
- a
- i
- =
- 1
- +
- i
- +
- 0.5
- N
- ;
-
- and
- compute an approximation to log(x), using a polynomial of first degree in m and a precomputed value of log(ai);
- and further wherein said device being configured to compute an approximation to log(x) comprises said device being configured to compute an approximation written as:
- y=−log(x)≈bi+ciΔx+e×log(2)
- for i=0, . . . ,N−1
- where:
- b
- i
- =
- -
- log
-
- (
- a
- i
- )
- +
- (
- 1
- 4
-
- a
- i
-
- N
- )
- 2
- -
- (
- 1
- +
- 1
- 2
-
- N
- )
-
- 1
- a
- i
- ;
-
- and
- ci=−1/ai.
Dependencies are inferred from the claim text.