Some of these algorithms kind of dictate the data structures you have to use. Originally, I wanted this to be a reference implementation, but I think for some of the algorithms, I might not do it exactly line for line translated because some of the steps are either redundant (like an extra copy) or don't follow how the data is stored. As a first pass, I will try to be close to the spec definition so it is easier to read and test and then once all the tests are passing (as found in #5), I might refactor the algo implementations to be a bit more clean.
Some of these algorithms kind of dictate the data structures you have to use. Originally, I wanted this to be a reference implementation, but I think for some of the algorithms, I might not do it exactly line for line translated because some of the steps are either redundant (like an extra copy) or don't follow how the data is stored. As a first pass, I will try to be close to the spec definition so it is easier to read and test and then once all the tests are passing (as found in #5), I might refactor the algo implementations to be a bit more clean.