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.