Radix sort has been on the list of GSoC algorithms for the past two years and I enjoy implementing algorithms so here is my (almost complete) attempt. The early commit history is missing, I'm sorry, because I did most of the work before forking the Boost repository.
Some parts of the code that I'm not 100% confident about:
identity<T>: Is this the best way to support actual unsigned integral types and types that can be implicitly converted?
tr1_result_of: Is this the right way to get result_of in this circumstance?
What is a trivial value of n? I.e., how to test functions that might legitimately throw an exception?
Obviously the tests are embarrassingly duplicated and I haven't decided how to resolve that yet.
The only thing that is definitely incomplete is the documentation -- the code I am pretty happy with but eager to hear suggestions and criticism from others.
Hello team Algorithm!
Radix sort has been on the list of GSoC algorithms for the past two years and I enjoy implementing algorithms so here is my (almost complete) attempt. The early commit history is missing, I'm sorry, because I did most of the work before forking the Boost repository.
Some parts of the code that I'm not 100% confident about:
identity<T>
: Is this the best way to support actual unsigned integral types and types that can be implicitly converted?tr1_result_of
: Is this the right way to get result_of in this circumstance?Obviously the tests are embarrassingly duplicated and I haven't decided how to resolve that yet. The only thing that is definitely incomplete is the documentation -- the code I am pretty happy with but eager to hear suggestions and criticism from others.
Cheers.