Has anyone any idea where I can get a double precision maths library which will work with the Keil C51 compiler.
"I see what you mean about the price - how on earth do they justify that!" Have you tried adding-up how long you've spent on this so far? Give this to your accounts department, and ask what cost it represents - be sure to get the full cost, with full overhead weighting, etc. And don't forget the costs of testing, maintenance, documentation, etc, etc,... They may even want to factor-in the time that you haven't been spending on other work...
It's interesting to note that ANSI requires only a minimum 10 digits of precision for a double and 6 for a float. In fact, that is the only difference in requirements between the two. Long double has the same minimum requirements as double. I don't know whether there is an exemption for freestanding implementations from supporting 10 digit doubles or if this is an example of 'ANSI compliance' being slightly redefined. Either way, I don't think the ANSI minimum requirements for double are in line with most people's expectations.
Hello Ian Yes - this one had me perplexed. 10 decades would be enough for me, but since the IEEE format calls for 8 bytes with a 53-bit mantissa (including the assumed leading 1) I don't know why ANSI C only calls for 10 decades. Since the maths will be coded in binary, I will used all the mantissa bits, which will give me over 15 decades of respolution. best regards - Paul
"Yes - this one had me perplexed. 10 decades would be enough for me, but since the IEEE format calls for 8 bytes with a 53-bit mantissa (including the assumed leading 1) I don't know why ANSI C only calls for 10 decades." I don't think ANSI requires IEEE754 to be used. The explanation for the seemingly 'easy' requirements is most likely to avoid making old implementations non-conforming. ANSI have always seem to have adopted a policy of formalising existing popular implementations rather than pushing the boundaries forward.