Flipping point?

Imagine there are two algorithms which solve the same problem, but have different performance. One has worse asymptotic behaviour but smaller constant factor, thus more suitable for short inputs. Another has better asymptotic behaviour but larger constant factor, thus more suitable for long inputs.

How would you call the size of input at which both algorithms finish simultaneously? So that for smaller inputs one should use the first algorithm and for larger ones the second algorithm. Tipping point? Flipping point? Switching point? Breaking point?

Bonus question: how would you call a function which benchmarks algorithms and finds this point?

6 Likes

Crossover point.

And the function “crossFinder”. It’s not the most descriptive name, but I like it :wink:

3 Likes

O intersect

find intersect

+1 for “crossover point”, works well in my head though I’d probably do a bad job of describing why in text or speech. :thinking:

Rather than comparing f(x) and g(x), it’s easier to describe (f-g)(x). If you compare the algorithms by discussing their difference, the terminology is just “root” and root-finding algorithm.

2 Likes

I’m not aware of a well established term, but I have often seen it called a “threshold” in the context of hybrid algorithms.

For instance,

  • Wikipedia’s description of introsort says “… it switches to insertion sort when the number of elements is below some threshold”.
  • GMP lists a bunch of “thresholds” according to which it chooses the multiplication algorithm to use.
2 Likes

Equalizer? It’s quite sloppy, but perhaps suggestive enough.

1 Like

Indifference point, but it is likely too clunky for a function name.

EDIT: If you ask a Brit “What’s the flipping point?” they will likely answer “Don’t flipping ask me!”.

4 Likes

Inflection point, perhaps?

4 Likes

I would also have said crossover point.

1 Like

Instances of ‘crossover point’ used in the wild:

4 Likes

Thank you for the link to Galactic algorithm. I found simulated annealing and that is incredibly useful.

I just want to say when I saw the title of this thread I was really hoping this was an alternative proposal to floating-point numbers …

4 Likes

https://posithub.org/

I’ve just found that package, this is not meant as an endorsement: posit: Posit Numbers

3 Likes

Yes…that work appeared in one of my older searches:

  • Dr. John L. Gustafson: Publications

…David Turner was correct after all: one numeric type for everything numerical! So why aren’t we all using them now?

…hmm - two members of academic who just can’t seem to agree on these “new-fangled” numbers: yeah, that always helps with adoption of something new!

I can only presume that similar debates were happening during the development of IEEE754…but at least we actually have something to show for it, something that can actually be used right now! But if that IEEE standard is still so repugnant…maybe something can be improvised with 128-bit integers.

As for this topic’s name: if it was about floating-point numbers and their problems:

  • Flopping point?
  • What’s the flopping point?
  • Cream: not the only thing that floats

…anyone for a whole new thread?

2 Likes

It occurs to me that in the thermodynamics world people call this kind of thing the transition point. I’m not sure if it’s perfect, but it’s at least what came to my mind.

1 Like

I’m flip-flopping about that – a bit of a floating voter.

Thanks all, seems “crossover point” is a favorite. If anyone is curious, I was working on Test.Tasty.Bench.Crossover.

OMG, I had no idea %)

1 Like

Yes, be careful! See also ‘flipping Nora’ and ‘flipping the bird’.

Released now: Test.Tasty.Bench.Crossover.

1 Like