[ https://issues.apache.org/jira/browse/NUMBERS-161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17356764#comment-17356764 ]
Gilles Sadowski commented on NUMBERS-161: ----------------------------------------- {quote} {code} // previous double normalized = PlaneAngleRadians.normalizer(lower).applyAsDouble(azimuth); {code} {quote} Commit a71294ae30dc69f99f3a0fe4a5daee45fdd448da: {code} double normalized = Angle.Rad.normalizer(lower).applyAsDouble(azimuth); {code} > PlaneAngle Numerical Accuracy > ----------------------------- > > Key: NUMBERS-161 > URL: https://issues.apache.org/jira/browse/NUMBERS-161 > Project: Commons Numbers > Issue Type: Improvement > Reporter: Matt Juntunen > Assignee: Gilles Sadowski > Priority: Major > > The current {{PlaneAngle}} class introduces unnecessary round-off errors > during use since it internally converts all values to turns. For example, it > is currently impossible to represent the radians value {{Double.MIN_NORMAL}} > exactly since the internal multiplication introduces errors: > {{PlaneAngle.ofRadians(Double.MIN_NORMAL).toRadians()}} does not equal > {{Double.MIN_NORMAL}}. We should restructure this API so that values are > stored exactly and multiplication is only performed when required. > This issue was discovered during work on GEOMETRY-124. Use of the new > {{Reduce}} class added two more floating point operations to angle > normalization and caused a regression in commons-geometry-spherical. -- This message was sent by Atlassian Jira (v8.3.4#803005)