
Oh wait.... just looked at the code and I see the issue - you set max_digits10 to digits10+1 which isn't enough, should be set to cpp_dec_float_total_digits10 which is the largest number of digits possible in the number right? Making that change causes the test to pass, so committing, but please advise if that's upping max_digits10 too far ;-)
Cheers, John.
Thanks, John. I have been doing quite a bit of testing and reviewing, concentrating on the implementation of cpp_dec_float. Everything is going quite well! It's a lot of fun playing with this impressive analysis system! I have several change requests which I have implemented in my SVN checkout and thoroughly tested with the test suite. John, if you would like me to commit the changes described below, I can. If you would prefer to wait until a time in the future OK. I can also provide you with source for your approval. I would like the changes now, even though we are rapidly approaching a potential review. After this, I promise to stop fiddling around with cpp_dec_float because the quality of the implementation and testing of is, in my opinion, more than adequate for a first release. 1) The version of cpp_dec_float in the sandbox has a lower-limit on the number of decimal digits of 30. I would like to reduce the lower limit to 9, thereby being sure that the internal data array retains at least two limbs. Our previous tests at 17 and 30 digits both simply tested at 30 digits. This change will smoothen the transition from built-in types to arbitrary precision. 2) Thereby, add test cases at 9 and 18 digits to the following: sqrt, sin, asin, atan, exp, log, sinh, pow, cyl_bessel_i, zeta. 3) Include one additional test at 1000 digits to sqrt, thereby extending the test data in the test case accordingly. 4) I could not find a particular dependency in the Jamfile. I need to add it for testing square root with cpp_dec_float. 5) Remove the unnecessary temporary storage array in the internal multiplication routine of cpp_dec_float. (Unfortunately operator+= still has one that I must remove at a much later time due to higher code complexity). 6) Cleaned up all the constants in cpp_dec_float. There were constants with prefixes of "ef_", "mp_" and "cpp_dec_float_", originating from 3 different development epochs. I have unified them all to "cpp_dec_float_". I am just finishing up the final testing of 564 targets. All the tests pass. Whould you like the changes committed? Best regards, Chris.