According to this
Let n be a parameter that measures the size of the problem, and let R(n) be the amount of resources the process requires for a problem of size n. In our previous examples we took n to be the number for which a given function is to be computed, but there are other possibilities. For instance, if our goal is to compute an approximation to the square root of a number, we might take n to be the number of digits accuracy required. For matrix multiplication we might take n to be the number of rows in the matrices. In general there are a number of properties of the problem with respect to which it will be desirable to analyze a given process. Similarly, R(n) might measure the number of internal storage registers used, the number of elementary machine operations performed, and so on. In computers that do only a fixed number of operations at a time, the time required will be proportional to the number of elementary machine operations performed.
and
... For instance, if we count process steps as “machine operations” we are making the assumption that the number of machine operations needed to perform, say, a multiplication is independent of the size of the numbers to be multiplied, which is false if the numbers are sufficiently large. Similar remarks hold for the estimates of space. Like the design and description of a process, the analysis of a process can be carried out at various levels of abstraction.
I usually try to count the number of steps by counting how many times a single operation is executed and totalling all of them (e.g. 1 if statement, n multiplications, n additions = 2n+1 = 2n = n operations where n is the input). This book makes it appear there are different things to count when counting the number of steps. That is, what steps to count might vary. My questions are:
- Other than registers and elementary machine operations, are there other examples of things that can be counted when counting the number of steps?
- I believe I am counting elementary machine operations when determining order of growth. Are there example programs where the steps we're counting should not be elementary machine operations (e.g. registers)?
- This statement is confusing: "In computers that do only a fixed number of operations at a time, the time required will be proportional to the number of elementary machine operations performed." Does this talk of all computers in general? Are there computers that do different numbers of operations at a time?