In the previous post, we created an approximation to i by iteratively solving Sum[j=0,n]{x_(j)*x_(n-j)} = 1 to construct a number which squares to our base 2 representation of -1, …111. The first few terms are:

… (35/128) (5/16) (3/8) (1/2) (1)

Some observations: it is tempting to simplify this to the standard base 2 symbols {0,1} but the simplified form is no longer a good approximation of i. To see, let’s take the first two terms, which are a good approximation up to order 1. Squaring this number:

O(2+) + (1/2)*2^1 * 1*2^0 + 1*2^0 * (1/2)*2^1 + 1*2^0 * 1*2^0 = 3, discarding terms of order 2 and higher. 3, or 11_2 is a good approximation to -1.

However, (1/2)*2^1 + 1*2^0 can be simplified to 1*2^1. This number does not generate any terms of order less than 2. Inspecting the total result any way gives 4, or 100_2. This is a much worse approximation to -1 than the other form. What is going on?

The non-standard values of the imaginary number representation we’ve created encodes how information is distributed throughout the multiplication algorithm. This allows us to use the truncation operation to extract our approximation.

This is also a beautiful example of a divergent series that improves for some number of terms before becoming worse. It also shows what can be happening with these series. The truncated portion of the operation contains information about future, incomplete terms. Transforms of the series may exist that more neatly compress information about the result into usable shapes.