Under the control of the program, the real RAM can transfer real numbers between memory and registers, and perform arithmetic operations on the values stored in the registers.
The allowed operations typically include addition, subtraction, multiplication, and division, as well as comparisons, but not modulus or rounding to integers.
The reason for avoiding integer rounding and modulus operations is that allowing these operations could give the real RAM unreasonable amounts of computational power, enabling it to solve PSPACE-complete problems in polynomial time.
[2] When analyzing algorithms for the real RAM, each allowed operation is typically assumed to take constant time.
Software libraries such as LEDA have been developed which allow programmers to write computer programs that work as if they were running on a real RAM.