Polynomial Floating-Point Evaluation Precision Partitioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Floating point arithmetic is prone to rounding errors when evaluating polynomials, leading to inaccuracies despite increased precision, as the relative error in floating point implementations can exceed one, causing incorrect sign determination in geometric calculations.
Innovation Solution
The method involves determining if a polynomial has an allowable variety, partitioning the input domain into sub-domains around sub-varieties, and identifying precision for each input based on its location, generating a floating point implementation that selects terms and precision for evaluation, ensuring a bounded relative error of less than one.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If floating point arithmetic is used to evaluate polynomials, then a greater range of numbers can be represented, but rounding errors occur leading to inaccuracies in geometric calculations
Solution Approach 1:
The input domain is partitioned into multiple sub-domains based on the location relative to allowable varieties. Each sub-domain has associated precision requirements that are determined separately, allowing different precision levels to be applied in different regions of the input space.
Solution Approach 2:
Different precision levels are assigned to different sub-domains based on their proximity to allowable varieties. Inputs closer to varieties require higher precision, while inputs farther away can use lower precision, optimizing the balance between accuracy and computational efficiency.
2Measurement precision
If more precision is added to floating point representation, then rounding errors are reduced, but the relative error can still exceed one causing incorrect sign determination
Solution Approach 1:
The system performs preliminary analysis to determine whether the polynomial has an allowable variety and partitions the input domain before evaluation. This pre-processing step identifies regions where high precision is necessary to ensure correct sign determination, allowing precision to be applied proactively rather than uniformly.
Solution Approach 2:
The precision parameter of floating point representation is dynamically adjusted based on the input location within sub-domains. By changing the precision parameter according to the specific evaluation context, the system ensures reliability without uniformly increasing precision across all inputs.
3Measurement precision
If uniform high precision is used for all inputs, then accuracy is improved, but computational performance deteriorates
Solution Approach 1:
The input domain is segmented into sub-domains with different precision requirements. This segmentation allows the system to apply high precision only where necessary (near allowable varieties) and lower precision elsewhere, maintaining accuracy where needed while improving overall computational performance.
Solution Approach 2:
Instead of applying high precision uniformly to all inputs (excessive action), the system applies high precision only partially to specific sub-domains where it is actually needed. This partial application of precision maintains accuracy for critical cases while avoiding the performance penalty of universal high precision.
Data Source
AI summary
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.


