2

I've been having an argument with a colleague about the use of the phrase "infinitely more efficient".

I use it sometimes when describing the proper way to implement some programming solutions, but he feels it is not possible, by definition, for something to be infinitely more efficient than something else.

I feel that where an infinite number of variables are present, it would indeed be possible for one process to be infinitely more efficient than another process.

9
  • 4
    Language is distinct from logic. It's just hyperbolic. Commented Aug 15, 2014 at 5:25
  • 3
    I wonder about the programming solution that has an infinite number of variables. Commented Aug 15, 2014 at 8:07
  • 1
    For technical subjects it's best to avoid terms such as "infinitely" and "exponentially" if you don't know when they apply. Bonus: don't use "permutations" when you mean "combinations".
    – Rob Grant
    Commented Aug 15, 2014 at 10:00
  • @RemcoGerlich Consider an infinite recursive loop in which a variable is declared at the start of each iteration. ;)
    – talrnu
    Commented Aug 15, 2014 at 13:30
  • For your hypothetical example: en.wikipedia.org/wiki/Stack_overflow (the error, not the site). Commented Aug 15, 2014 at 13:55

11 Answers 11

3

If two processes have different complexity classes, then, in the limit the one with the better complexity class is infinitely more efficient. So, by that logic, being infinitely more efficient is a common thing. Note that inside of complexity classes, one algorithm can be more efficient than another, but it will not be infinitely more efficient.

So, if f(x) is the running time of algorithm A, and g(x) is the running time of algorithm B (x being the input size), where g(x) in O(f(x)), but not f(x) in O(g(x)), then it follows that g(x)/f(x) goes to infinity as x goes to infinity.

Obviously your colleague (and probably you too) think in terms of constant x, then of course that argument doesn't work.

1
  • This actually answers the question in the style it is asked. No one is disputing that 'infinite' can be used in the context of hyperbole but the question is about the nature of whether one process can be infinitely more efficient than another.
    – GenericJam
    Commented Aug 15, 2014 at 18:13
10

Your statement is a perfectly reasonable usage of the rhetorical technique known as hyperbole; i.e. a grossly exaggerated statement used for dramatic effect.

Hyperbole is not to be taken literally so your colleagues stated objection is erroneous.

BUT

It sounds like your dramatic language is starting to get on your colleague’s nerves. Maybe you should consider turning things down a notch?

5
  • 3
    The mixing of registers ('infinitely' used hyperbolically in a technical discussion) is inadvisable. What's wrong with 'much'? Commented Aug 15, 2014 at 8:33
  • @EdwinAshworth or even incredibly
    – MegaMark
    Commented Aug 15, 2014 at 10:26
  • 2
    @EdwinAshworth In the shops where I've worked, imprecise language and hyperbole are surprisingly common, particularly amongst techies in their twenties. Nitpicking grammar for the sake of needling someone is also common. Shop talk is not necessarily on the same level of formality as documentation. Commented Aug 15, 2014 at 10:31
  • @Yamikuronue Sounds positively Dilbertian. Commented Aug 15, 2014 at 10:52
  • +1 for trying to reach behind the curtain (unsolicited guessing is OK, in my book, especially if it tries to help someone): It sounds like your dramatic language... I would suggest that it is perhaps not a problem only of the drama in the language, but of his use of language generally. (See my comment about the wording of the question.) I suspect that the OP does not pay a lot of attention to what he is really saying. That might be what vexes the colleague. And yes, maybe the colleague is a nitpicker. (But for a programmer to confuse use and mention is at least ironic, if not sad.)
    – Drew
    Commented Aug 15, 2014 at 15:02
5

You can use it to be emphatic, but if you overuse it, you won't be taken seriously in any quantitative sense. At that point, some may question whether you can really judge at all whether something is even more or less efficient.

2

You can use the term, and it would be accepted by many people; however, this doesn't make it any less of a hyperbolic cliché, and thus an expression to avoid using. Clichés tend to make most readers disengage mentally from what they are reading and discount its veracity or reliability. Your colleague's response is a case in point.

You also wrote, "I feel that where an infinite number of variables are present, it would indeed be possible for one process to be infinitely more efficient than another process". Let me ask you: how often does a programming context present itself in which there is truly an infinite number of variables to be handled?

If, as I strongly suspect, the answer is zero, then your excuse has no real-life basis. Even if it is slightly greater than zero, your justification is a feeble one. Making a stand in defence of this cliché is pointless, and merely exposes you to ridicule.

0
1

It's possible for a solution to be infinitely better than the other, but I doubt you are using it correctly (unless you want to exaggerate).

For example, theoretical solar panels that don't require maintenance and doesn't wear out is infinitely efficient, because when we expand time to infinity, it produces infinite electricity for fixed cost of production.

Also solution that works is infinitely more efficient than solution that doesn't.

(finite production/finite cost)/(+0/finite cost) = infinity.

3
  • No, dividing by zero does not produce infinity, dividing by zero produces nonsense.
    – Dan Bron
    Commented Aug 15, 2014 at 12:00
  • @DanBron Yes, but symbol +0 implies that I approximate 0 to infinitively small positive value to avoid undefined result. Commented Aug 15, 2014 at 22:09
  • For your first example: approximate zero (the price per production unit) results in an efficiency of approximate infinity. Infinity is the upper limit in this case i.e. will get really really close but never reach it. As for your second example, it is using the extended real number line which treats undefined as (positive or negative) infinity in some cases. Altough I must admit that saying something is "infinitely more efficient on the extended real number line" sounds really cool! :) Commented Aug 18, 2014 at 15:21
0

So assume process A has an efficiency of two efficiency units, and process B has an efficiency of three efficiency units. Process B is 50% more efficient than process A. (3-2/2 = 0.5 = 50%). If process A had an efficiency of an arbitrarily low number which was most nearly zero, then any other process with non-zero efficiency would be, in the limit, infinitely more efficient.

For a suitable choice of efficiency metric, the phrase is both anal-retentively and grammatically correct. Notwithstanding, most would use it hyperbolically.

1
  • 1
    Except we live in a discrete and conserving universe, so we can neither make input arbitrarily small, nor output arbitrarily large, and therefore, sadly, we cannot make a process infinitely efficient. In fact, we know the maximum possible efficiency, and it's strictly finite.
    – Dan Bron
    Commented Aug 15, 2014 at 1:27
0

This is the rhetorical device of hyperbole. So yes, the phrase is possible, and it may or may not be appropriate (and/or annoying) according to whether exaggeration is appropriate (and/or annoying).

Literally speaking there are at least two different ways to compare two quantities:

"10 is 8 bigger than 2".

Efficiency is the ratio of output to input (which in this context means resources consumed, not computer program input data). So in this type of comparison the only way process A can be "infinitely more efficient" than process B is if process A is "infinitely efficient", that is to say it has infinite output (probably that's physically meaningless) or it has zero input (probably that's physically impossible).

"10 is 400% bigger than 2".

Now we have a new way for process A to be "infinitely more efficient" than process B: if process B has zero output, then anything with an output is "infinitely more efficient" when the comparison is expressed as a proportion of the efficiency of B.

So, if your friend is speaking literally then perhaps he's saying that the original process has efficiency 0: it produces no output. This could be literally true with no exaggeration, but might well not be true of the code you're looking at with your colleague.

0

As a programmer, I'd have to say no. No matter how much you improve efficiency (which is work done/time), it is never possible to improve it infinitely, as that would mean your calculation is done literally instantly, which is clearly impossible.

1
0

While it is theoretically possible for one program to be infinitely more efficient than another this will never happen in reality.

Looking at some examples:

If one program takes 2 seconds and the other takes 4 to perform the same task it is 200% of the efficiency of the other.

If one program takes 0.01 seconds and the other takes 4 it is 40000% more efficient.

If one program takes 2 seconds and the other takes 4000 seconds it is 200000% more efficient.

Now, I do understand that if one algorithm is exponential say and the other is constant or linear this % will grow very quickly, however it will never reach infinite without the faster program taking 0 time or the slower one taking infinite time, on a finite state machine (such as a computer) no computation can take either 0 or an infinite amount of time as to be a program (with the exception of the empty program which does not have an efficiency as it does no work) it has to be definition go through at least one clock tick of the computer and given a finite quantity of storage it must have a finite number of states so must eventually terminate.

So ultimately your premise is wrong, there is no such thing as an infinite number of variables as there are a finite amount of matter in the universe and thus a finite amount of data that can be encoded.

-1

Yes this is a hyperbole as others have pointed out and yes you can use it like that in a sentence.

But let me get this clear because this is a mathematical error I've seen in multiple answers:

When something is ridiculous more efficient than something else, it approaches infinity. If one solution does work and the other doesn't, then it isn't infinite times more efficient, it is undefined times more efficient.

Efficiency is the ratio of a quantity compared to an other quantity. Infinity is not a number and ergo cannot be used as a quantity. It just doesn't make sense.

If I run 100 meters in 10 seconds and somebody runs twice as efficient as me, it will take him 10/2 = 5 seconds. If somebody runs infinite times more efficient than me, how long will it take him to run 100 meters? Not 0 seconds, because that would mean that 100/0 = infinity, and

something divided by zero does not equal infinity!*


*Unless you use Javascript. In that case you can be infinite times more efficient if you do it faster than 5,56-308 s

5
  • Colloquially--yes, anything divided by zero may result in "infinity." It's wrong in math, but appropriate to describe the "efficiency" improvement when you go from something that doesn't work to something that does. (Some programming languages even incorporate this as defined behavior. Wrong mathematically, but sometimes useful.)
    – DougM
    Commented Aug 15, 2014 at 12:49
  • @DougM, of course, but the question asked was if it is technically possible for something to be infinite more efficient, not if it could be described as such. What you said about programming languages is interesting, most languages I know throw an exception or return NaN. Which programming languages have this as defined behaviour? Commented Aug 15, 2014 at 12:56
  • JavaScript, for one. (Hit F12 to open developer tools, select the console, and type "1 / 0")
    – DougM
    Commented Aug 15, 2014 at 13:05
  • @DougM, you're right, we can thank Javascript for keeping one of the biggest mathmisconceptions alive. I updated my answer accordingly. Commented Aug 15, 2014 at 13:30
  • 1
    Actually, the Javascript timer ticks at 15 ms. So you only need to be faster then that to reach 0. Commented Aug 15, 2014 at 14:50
-1

Dividing by zero is said to be meaningless because division is the reverse of multiplication and for y = x/0 (where x is finite) there is no real number that, multiplied by 0, gives x.

But infinity is not a real number. If you limit the question to asking for real numbers only then you of course reject any potential answer involving other types of numbers. That's a problem with the question (y is what real number?) not the answer.

If you accept infinities as possible then you must accept infinitesimals with them: dividing a finite amount by an infinite amount results in an infinitesimal amount. (The person saying "infinitely more efficient" must obviously accept them and their statement should be received in that context. Nobody can categorically say "the statement is impossible because there are no such things as infinities" because nobody knows that for sure.)

Any process with finite efficiency is infinitely more efficient than one with infinitesimal efficiency. For all intents and purposes, zero and infinitesimal are the same thing (you could not measure the difference, you could not tell them apart). Ergo, finite efficiency is infinitely more efficient than zero.

1
  • Infinitesimal is a value approaching zero. Approaching zero is not the same as being equal to zero. And efficiency is a ratio, you cannot say some (non-zero) X is Y times greater/faster/taller as 0. Because 0*Y will ALWAYS be 0 and never X. Commented Aug 15, 2014 at 14:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.