e strings are, therefore, X3, X2X3, and X1X3. Figure H1 shows how each of the intervals I and I2 is divided in turn into three subintervals (I11, I12, I and I21, I22, I23). The subintervals of interest for complete strings, I3, I23, and I13, are highlighted in Fig. H1. For future use, we define the interval width of I = (u, v) as w(I) = V - U. In particular, w(I) = 1, w(I1)=p(x1), = w(I3)= p x (2). The single-symbol string, X3, which, according to our convention, is useless or has zero message payload, is, thus, defined by the interval I3 = (u, v). The start and stop (values of this interval are, according to Eq. (H3): u = p(x1)+ p(x2) v = p(x))+ p(x2) + p(xs). D.J.C. MacKay, A Short Course in Information Theory (1995), www.inference.phy.cam.ac.uk/mackay/info- theory/course.html; see also D.J.C. MacKay, Information Theory, Inference and Learning Algorithms (Cambridge, UK: Cambridge University Press, 2003), p. 113. Appendix H p(x)+p(x2) Figure H1 Source and strings to build algorithm from successive subinternal division. Although it looks a bit useless and complicated, it is accurate to rewrite the definition in Eq. (H7) in the general form: u(I3) = = v(I3) = p(x1/s)p(s) + p(x2/s)p(s) + p(x3/s)p(s) = u(I) + where the argument refers to all preceding symbols in the string (since there are none here, p(s) = 1 = w(I) and p(x1,2,3/S) = p(x1,2,3)), where u(I) = 0 is the start value of the interval corresponding to all preceding symbols (I). Consider next the interval I23, which is the last subdivision of I and corresponds to the string X2X3, as shown in Fig. H1. Consistently with the subdivision, the start and the stop values of this interval are: p(x1) + p(x1/x2)p(x2) + p(x2/x2)p(x2) + p(x1/x2)p(x2) + p(x2/x2)p(x2) + p(x3/x2)p(x2), which can be rewritten in the form: (H10) Arithmetic coding algorithm p(x)+p(x2) X2XXX X2XXX X2XXX X1X2X3 XX2X2 X1X2X1 X1XXX X1XXX Figure H2 Symbol strings with lengths up to N = 3. The same results as in Eqs. (H9) and (H10) can be obtained for the interval I13, corre- sponding to the strin