Limitations of Arithmetic coding? I have been working on an assignment for university in which I have to compress an 80K message consisting of only two symbols, 'a' and 'b', having probability values of 0.6 and 0.4.

I have successfully written my code in Matlab and it is working efficiently for 10-20 symbols. However when I pass my 80k symbol message through my code it stops updating at the 1057th value due to the Range parameter, which achieves a value of 10^-324 (the theoretical limit of type double float).

My question is, is this the limitation of arithmetic coding when the range becomes so small that we cannot work with it or am doing something wrong?

I am working on arithmetic encoder, so no answers related to range decoding will work.
You should not be using floats or doubles to store your message. You need to write your compressed message in binary.