This is the same thing. The point is that you say "10 5% improvements of state S0" in that sentence and then later on you use 10 5% improvements of state S0, S1... S9. This doesn't make any sense, could you explain to me how this would work?
This is the same thing. The point is that you say "10 5% improvements of state S0" in that sentence and then later on you use 10 5% improvements of state S0, S1... S9. This doesn't make any sense, could you explain to me how this would work?
No, I don't.
Here's a very simplistic example. Say I've got a complicated computation with 10 nested loops, and there's a potential for a 5% speedup tweak at every nesting level, each of which takes about the same amount of effort to find; or, for the same overall effort I can speed up the whole thing by 50% by replacing the whole algorithm with a faster one.
The former case gives you a better outcome than the latter, and it doesn't matter what order you do the tweaks in, or whether you do them all at once. The point is that they can compound without caring about the previous or latter state of anything other than their own level.
Let's say my program takes time 1.0 and is made up of part A taking 0.5 and part B taking 0.5
Defining 5% speedup is weird in the first place, but let's say 5% speedup is taking 0.95 for the program and 10% speedup is taking 0.9 for the program.
5% speedup by improving part A => 0.45 + 0.5 => 0.95 runtime 5% speedup by improving part B => 0.5 + 0.45 => 0.95 runtime
making both improvements: 0.45 + 0.45 => 0.9
So, two speed-ups which individually would be 5% over the initial performance gives us a 10% speed up.
percentage speed ups do not necessarily compound. And in practice, usually they do not.