[xint] Review ending in 2 days

Boosters, I just wanted to remind that review of the Boost.XInt library, by Chad Nelson, is about to end at March 11. So, if you plan to submit a review, please do it now. The documentation for the current version is available at: http://www.oakcircle.com/xint_docs/ The source code is available via Subversion at: http://svn.boost.org/svn/boost/sandbox/xint or can be downloaded at: http://www.boostpro.com/vault/index.php?action=downloadfile&filename=xint.zip Here are the important points: 1. All comments are appreciated. Even if you don't have the time for in-depth study of everything, comments on parts of the library are welcome. In particular, if you are already using logging in your applications and have specialized requirements, you might want to directly check how the proposed library handles them. 2. The reviews and all comments should be submitted to the developers list, boost@lists.boost.org and the email should have "[xint]" prefix in the subject to make sure it's not missed. The deadline for reviews is 23:59, March 11, PST, or 2:59, March 12, EST, or 7:59 March 12, UK time, 10:59, March 12 MSK 4. The general review checklist is provided below: - What is your evaluation of the design? - What is your evaluation of the implementation? - What is your evaluation of the documentation? - What is your evaluation of the potential usefulness of the library? - Did you try to use the library? With what compiler? Did you have any problems? - How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? - Are you knowledgeable about the problem domain? Thanks, Volodya -- Vladimir Prus Mentor Graphics +7 (812) 677-68-40

Dear all, This is my review of the proposed XInt library. Please excuse my blunt/concise language. I see great potential for an arbitrary-precision integer library and I applaud Chad for what he has accomplished over the last six iterations of the library. But with the XInt library I see too many outstanding issues regarding both the design and the implementation which I believe need to be addressed before the library should be accepted into Boost. Thus I have to vote NO at this time.
- What is your evaluation of the design?
Data structures should be separated from algorithms. Algorithms should work on concepts. Certain algorithms are on the border or outside the domain of the library, such as random_by_size, is_probable_prime, random_prime, and the secure option. I see a problem with Not-a-Number as it breaks one of the basic properties of algebra, namely the additive inverse property, i + (-i) = 0. Wrapping using boost::optional would perhaps be a better choice. Signed-Zero provides nothing for the XInt library. Providing Signed-Zero and Not-a-Number but not Positive-Infinity and Negative-Infinity seems backwards. In this day and age the design must be thread-safe. I'm not confident that COW semantics is a wise design choice. bool arguments should be replaced with enums.
- What is your evaluation of the implementation?
BOOST_THROW_EXCEPTION should be used for throwing exceptions. Duplicated/dead code for throwing and non-throwing classes should be eliminated. Even though I somewhat question the validity of the most recent COW vs Move performance testing, the results are actually dissatisfying for COW. The reason I question the validity is due that Move isn't implemented for the internal classes. Anyway, comparing the worst and the best case the 8Kbit integer test shows 3.2% performance improvement, while the 2Kbit integer test shows 6.3% performance improvement. Changing the multiplication algorithm to one with better complexity would give much better overall performance improvements.
- What is your evaluation of the documentation?
Documentation should use BoostBook. Some features are hard to find, such as the different supported options and how they interact.
- What is your evaluation of the potential usefulness of the library?
The potential usefulness for an arbitrary-precision integer library is huge.
- Did you try to use the library? With what compiler? Did you have any problems?
Yes, I used the library with VS2010. Without any issues, except rather long compile times. Probably my computer is to blame.
- How much effort did you put into your evaluation? A glance? A quick reading? In-depth study?
Thorough study of documentation. Testing library for about 5 hours. Reading code for another 2 hours. Running different benchmarks. Following the discussion with high interest since first preliminary review in March last year.
- Are you knowledgeable about the problem domain?
No. Best regards, Anders Dalvander -- WWFSMD?

On Fri, 11 Mar 2011 20:56:40 +0100 Anders Dalvander <boost@dalvander.com> wrote:
This is my review of the proposed XInt library. [...]
Thank you for the review, and comments. I am aware of the issues you mentioned, and have already addressed them elsewhere. -- Chad Nelson Oak Circle Software, Inc. * * *
participants (3)
-
Anders Dalvander
-
Chad Nelson
-
Vladimir Prus