I guess you would already have the code checked out? It is just a matter of updating the comments explaining how sin(a/2) / (1 + cos(a/2)) is equal to tan(a/4), and then change it in the code. I think you would need a test along with it.
Thanks, Krishna -----Original Message----- From: Ralph Hummeling <engineer...@hummeling.com> Sent: Tuesday, August 14, 2018 7:59 PM To: Krishna Addepalli <krishna.addepa...@oracle.com>; 2d-dev@openjdk.java.net Cc: james.gra...@oracle.com Subject: Re: [OpenJDK 2D-Dev] ArcIterator#btan(double) Dear Krishna, I'd love to. How do I best do that? Kind regards, Ralph Hummeling +316 5758 1679 Hummeling Engineering BV https://urldefense.proofpoint.com/v2/url?u=http-3A__www.hummeling.com&d=DwICaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=QF7AertWDY_M4hfHg_4S-iyX-aP0wtLYwZFgs0zfX_k&m=iFb2N0ZBD0EAiVLz7h0dhj41Ha2uquc9ZM_GpTwq_w8&s=ypabzzNLUNIyzlXJK9-g27W-gz6a1phXmPa771N3ZGU&e= On 13/08/18 08:39, Krishna Addepalli wrote: > Dear Ralph, > > Thanks for pointing this out, could you also come up with a patch for the > same? > > Thanks, > Krishna > > -----Original Message----- > From: Ralph Hummeling <engineer...@hummeling.com> > Sent: Friday, July 20, 2018 8:25 PM > To: 2d-dev@openjdk.java.net > Cc: james.gra...@oracle.com > Subject: [OpenJDK 2D-Dev] ArcIterator#btan(double) > > Dear Java 2D dev team, > > I came across your java.awt.geom.ArcIterator class in which an arc Bezier > control point segment length is determined in method btan(double). You arrive > at the following equation: > 4/3*(1 - cos(a/2))/(sin(a/2)) > > It is mentioned that this can return NaN for small "a" and so it is written > as: > 4/3*(sin(a/2))/(1 + cos(a/2)) > > Please note that this relation can also be written as follows: > 4/3*tan(a/4) > > A performance increase and no NaN issues ;-) > > > Kind regards, > > Ralph Hummeling > +316 5758 1679 > Hummeling Engineering BV > https://urldefense.proofpoint.com/v2/url?u=http-3A__www.hummeling.com&d=DwICaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=QF7AertWDY_M4hfHg_4S-iyX-aP0wtLYwZFgs0zfX_k&m=iFb2N0ZBD0EAiVLz7h0dhj41Ha2uquc9ZM_GpTwq_w8&s=ypabzzNLUNIyzlXJK9-g27W-gz6a1phXmPa771N3ZGU&e= >