Evaluation of polynomials with floating-point components
AssigneeImagination Technologies Limited
InventorTheo Alan Drane
Life of this patent
Estimating the term…
Abstract
A method identifies a floating point implementation of a polynomial that is accurately evaluable. The method comprises determining whether the polynomial has an allowable variety defined by a plurality of sub-varieties, and, if so, partitioning the input domain of the polynomial into a plurality of sub-domains about the sub-varieties. A floating point precision is then identified for each input to the polynomial falling within each sub-domain based on the location of the input within the sub-domain (e.g. how far away the input is from the sub-variety associated with the sub-domain). A floating point implementation for the polynomial is generated so that an input to the polynomial is evaluated using floating point components having the precision identified for the input.
Claims19
A method of generating a floating point implementation of a polynomial in hardware logic, the method comprising:
- determining, in an assessment module, whether the polynomial has an allowable variety defined by one or more sub-varieties;
- in response to determining that the polynomial has an allowable variety, partitioning, in an assessment module, an input domain of the polynomial into a plurality of sub-domains about the plurality of sub-varieties, each sub-domain being associated with one of the plurality of sub-varieties;
- for each sub-domain, identifying, in an assessment module, a precision of floating point components for each input to the polynomial falling within that sub-domain based on a location of the input within that sub-domain;
- and
- generating a floating point implementation comprising hardware logic configured to evaluate the polynomial for any received input to the polynomial using floating point components having the precision identified for the input.
A system to generate a floating point implementation of a polynomial in hardware logic, the system comprising:
- an input module configured to receive the polynomial;
- an assessment module configured to:
- determine whether the polynomial has an allowable variety defined by a plurality of sub-varieties;
- in response to determining that the polynomial has an allowable variety, partition an input domain of the polynomial into a plurality of sub-domains about the plurality of sub-varieties, each sub-domain being associated with one of the plurality of sub-varieties;
- and
- identify a precision of floating point components for each input to the polynomial falling in each sub-domain based on a location of the input within the sub-domain;
- and
- an output module configured to output a floating point implementation comprising hardware logic configured to evaluate the polynomial for an input to the polynomial using floating point components having the precision identified for the input.
A non-transitory computer readable storage medium having stored thereon computer readable program code that when executed causes at least one processor to:
- determine, in the processor, whether a polynomial has an allowable variety defined by one or more sub-varieties;
- in response to determining that the polynomial has an allowable variety, partition, in the processor, an input domain of the polynomial into a plurality of sub-domains about the plurality of sub-varieties, each sub-domain being associated with one of the plurality of sub-varieties;
- for each sub-domain, identify, in the processor, a precision of floating point components for each input to the polynomial falling in each sub-domain based on a location of the input within the sub-domain;
- and
- generate, in the processor, a floating point implementation comprising hardware logic configured to evaluate the polynomial for an input to the polynomial using floating point components having the precision identified for the input.
Dependencies are inferred from the claim text.