In normal computers, pointers in code "point" to memory. On a lower level, linking and loading turns those "pointers" into numerical codes which really do point to specific bytes (or bits) of computer memory. These bits are encoded in binary format, that is, in base 2 (0s and 1s).

In a quirky math class called Math 17 offered by my college, I learned about how, in Complex number space, knowing the behavior of the edge of a disk allows you to predict the behavior anywhere inside the disk. I'm not super strong on the logic of all this, but I think it is basically that on an open set, the edge/boundary of the set in Complex space behaves like a holomorphic function with which you can predict the zeros inside the set and thus the behavior of the numbers in the set. I'm sure this explanation is super inadequate and grates at the ears of real mathematicians, but hopefully you will know what I'm talking about.

Drawing from my extremely tenuous understanding of the rudiments of topology, might it be possible to allocate memory addresses in a computer in a way such that they could be modeled by some sort of disk in Complex number space, such that one could hold only the information pertaining to the edge of the set containing the data, forget the rest, and then use topological mathematics to predict the memory modeled within the disk? This way the computer would only have to hold onto memory long enough to build it into a surface, and then it could forget everything except for the boundary.

Of course it would require a lot of time to build this hypothetical complex disk. But once built, I imagine such a model could reduce the necessity of memory by an order of magnitude or more.


You might say that an analytic function's values on the boundary of a disk "encode" its values in the interior. There is a lot of redundancy in describing an analytic function by giving its values at every point (an uncountable collection of values!). An even more "economical" way to describe an analytic function is by a Taylor series: that's a countable collection of values.

A computer memory is a very different situation: a finite set of discrete values (0's and 1's). Although in particular situations there might be an encoding that preserves all the information and takes fewer bits, that certainly won't happen in general. With $n$ bits that can each independently take the values $0$ and $1$, there are $2^n$ possible configurations, and there is no way to encode this in less than $n$ bits.

  • $\begingroup$ Right, so the prime issue is that it is broadly unfeasible to create any model that can algorithmically describe/encode an arbitrary set of memory values (in less space than said memory). Understood. I guess that should have been obvious.. anyway thanks! $\endgroup$ Feb 17 '16 at 18:26

A function on the edge of a disk in the complex plane, perfectly represented in a computer's memory, would indeed be able to store a lot of information.

In fact, never mind the entire edge of the disk; throw away the values of the function except at a single point. Take that complex-valued number and throw away the imaginary part. Even further, discard the integer part, so all you're left with is a single real-valued number $x$ in the interval $[0,1)$.

Mathematically speaking, that number $x$ has a binary representation consisting of an infinite string of $0$s and $1$s to the right of a decimal point. As $x$ can be any arbitrary real number, its binary representation can be any string of $0$s and $1$s, except that in order to make the representation unique we have to deal with the fact that $0.0111\ldots_2 = 0.1000\ldots_2$. That is, we need a rule that applies to any $x$ that has a terminating binary representation (an infinite string of $0$s after some digit), and that decides whether to use that terminating representation or the equal representation ending in an infinite string of $1$s. A simple rule is, for any such $x$ use its terminating representation.

That's plenty. Any digital computer memory ever built has stored a finite number of $0$s and $1$s or other data easily converted to a finite number of $0$s and $1$s. In fact all the digital computers in existence right now have storage for only a finite number of $0$s and $1$s.

Now simply list those $0$s and $1$s in one long sequence and let that be the terminating binary representation of a real number $x \in [0,1)$. Hence a single real number $x \in [0,1)$ can store all the data in all the memory of all the computers in the entire world.

But here's the rub: nobody knows how to store an arbitrary real number in the interval $[0,1)$ with perfect mathematical exactness. In the past (decades ago) there was interest in analog computers, which essentially tried to do computation on the (theoretically) real-valued properties of their electronic components; but they did not work very well. The reason computers are digital is that it's easy enough (in enough cases) to get an electrical signal to slam to one end or the other of a range of values, but relatively hard to get a precise value in between the extremes; and any such "precise" value has actually rather limited precision.

So the complex-disk idea is an interesting one, but one of its basic assumptions--perfectly mathematically precise complex-valued computation--does not seem to be practical.

  • $\begingroup$ Hi David - I'm going to keep Robert's answer as accepted because it highlights the main issue with my idea, which is the presumption that one could create a memory-effective algorithm to model the memory we want to keep. However, I appreciate that your answer gets more into the nitty-gritty of binary and different forms of computation. Even when I thought about "tertiary" computation, I remained in the domain of digital computers. That alternatives to digital computation could exist is in itself hugely interesting! $\endgroup$ Feb 17 '16 at 18:33
  • 1
    $\begingroup$ @MaxvonHippel I would accept Robert's answer too. It gets directly to the principal difficulty with your idea. My answer is a more roundabout exploration of some of the things that separate mathematical theory from the things we can actually compute. If you want to look into a really different kind of computation that actually has some promise of practical usefulness someday, I recommend quantum computing (which is still digital, but is supposed to be able to bypass the deterministic nature of computation as we know it). $\endgroup$
    – David K
    Feb 17 '16 at 18:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.