- Mark

]]>wrb

]]>Quick reply; thank you very much.

I should like to bring to your attention some recent work of mine. Please see these posts at ResearchGate:

I would send you more material should you choose to provide a conventional email address.

wrb

]]>- Mark

]]>I would very much like to obtain the software that you used, for the encoding of the RAND Corporation One Million Random Digits with 100,000 Normal Deviates. If find trouble reconciling what my hexadecimal dump program finds in your file, and the data in the RAND Corp publication. Also, I would like to use your algorithm to test a few sequences that I have generated. Your help in this matter is very much appreciated. Again, I seek source code (or an executable) of your algorithm for encoding to binary the RAND Corp million digits.

Sincerely,

William R. Buckley

]]>Sorry, I did not notice the link to the updated version of the article. This is perfect! It answers all of my questions.

Thank you very much.

Regards, Andrew.

]]>Did you note that at the very top of the page there is a link to an updated version of the article?

The issues you raise are covered in some detail in the updated article, and I believe correctly. Check and see what you think.

- Mark

]]>I’m traveling right now, I will try to respond ASAP.

Figuring out the details on the last two bits is a bit tricky. In the original CACM article this was just not discussed at all, and you don’t see much talk about it elsewhere. I’m pretty sure I understand it, but that doesn’t mean I didn’t foul up the explanation or implementation. Check back in 48 hours!

- Mark

]]>I think I found a small typo in your article and code comments. In section “Practical Matters”, in the last sentence you state that:

“…two extra digits need to be shifted out of either the high or low value to finish up the output word.”

This statement is not consistent with the function flush_arithmetic_encoder in coder-1.c, in which you output the second MSB and any additional underflow bits. Furthermore, the function comment is also incorrect (line 104), it states that:

“… We output two bits, plus as many underflow bits as are necessary.”

If these are typos, could you please explain why we must output the second MSB and not the first in the flush function.

I have written a multiple precision arithmetic coder and outputting the second MSB works perfectly, I just don’t understand why.

Thank you for the excellent article. I could not have written my coder without this easy to read introduction.

Andrew

]]>