[metapost] The "angle" function clashes with numbersystem=double

Taco Hoekwater taco at elvenkind.com
Thu Jan 2 10:58:27 CET 2014

Hi Franck,

On 01/01/2014 02:02 PM, Franck Pastor wrote:
> But if the same program is executed with numbersystem set to
> "double", a=angle((1, 6)) becomes way too approximate: 80,5625
> instead of 80.5367, and the accuracy of its tangent suffers
> accordingly. Here is the console output: [...]
> Any idea of why it has gone wrong?

Yeah, I've got it. I was trying to fix a precision issue in the
wrong way. I was rounding the value in the angle in a misguided
attempt to fix this 'problem':

   >> "double"
   >> 80.53767779197439
   >> 6.000000000000003

Obviously the rounding thing was wrong, but the above output is
also horrible, so I also changed the double print routine to
use a ".15g" printf() argument instead of ".16g". My development
version now outputs:

   >> "double"
   >> 80.5376777919744
   >> 6

Best wishes,

More information about the metapost mailing list