Report Number: CS-TR-89-1268
Institution: Stanford University, Department of Computer Science
Title: Addition machines
Author: Floyd, Robert W.
Author: Knuth, Donald E.
Date: July 1989
Abstract: An addition machine is a computing device with a finite
number of registers, limited to the following six types of
operations:
read x {input to register x}
x <-- y {copy register y to register x}
x <-- x + y {add register y to register x}
x <-- x - y {subtract register y from register x}
if x >= y {compare register x to register y}
write x {output from register x}
The register contents are assumed to belong to a given set A,
which is an additive subgroup of the real numbers. If A is
the set of all integers, we say the device is an integer
addition machine; if A is the set of all real numbers, we
say the device is a real addition machine.
We will consider how efficiently an integer addition machine
can do operations such multiplication, division, greatest
common divisor, exponentiation, and sorting. We will also
show that any addition machine with at least six registers
can compute the ternary operation x[y/z] with reasonable
efficiency, given x, y, z in A with z not equal to 0.
http://i.stanford.edu/pub/cstr/reports/cs/tr/89/1268/CS-TR-89-1268.pdf