Boost logo

Boost :

From: Arseny Kapoulkine (arseny.kapoulkine_at_[hidden])
Date: 2007-05-07 08:54:06


Hello,

I am the student that was lucky enough to be selected as the developer of
Boost Bigint library as a Summer Of Code project. I've started working on
the project earlier than I had to, and there is a header draft ready which
I'd like to share with you - there are some issues that are not quite clear
(I've marked them with comments), and I would very much like to hear
possible problems with the current interface/suggestions about
improvement/etc.

The header is here: http://zeux.info/pub/soc/header.hpp (the SVN repository
was just set up, so I did not have enough time to upload all necessary files
to it).

Note, that while the reference (GMP-based) implementation is more than 50%
done (actually, it's almost done, some issues with string conversion and
64-bit correctness remain), I've stripped everything related to
implementation from the header - implementation is subject to change, it's
not finished, and possible interface changes could affect either the
implementation class interface or the actual implementation.

The suggestions that ARE known:
- the bigint class may benefit from expression templates/move semantics
regardless of the actual implementation behind the scenes. This is a known
thing, and I'll address it once all base things (stable header, 2 stable
implementation, test suite, documentation) are finished
- initially the approach that allowed to freely mix implementation strategy
(i.e. performing calculations) and storage strategy (memory management) was
selected, but after concept drafts it was clear that it will restrict the
possible implementations or make writing a wrapper for existing libraries
too complicated or even impossible. Now the implementation has to performn
its own memory management, though the default implementation (portable C++
one which will not depend on any third-party libraries) will provide a
reusable storage strategy (if that was unclear,
bigint_base<bigint_default_implementation<some_custom_strategy_that_performs_custom_memory_manager>
>).

Thanks in advance.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk