Well, I'm sure no one else is going to step up and field this one... so here goes.
"cEMs are the pronouncable acronym for corrected Exponentiation Modulus's. To understand the origin of this unit, you have to understand a little about the origin of SB. Historically, the first versions of SB (v0.1 - v0.90) used GMP as an underlying math lib. Anyone involved with SB back in April 2002 might remember the first month or so where we simply used EMs (
http://web.archive.org/web/200207310...mes/oldskool/). An EM was equal to one pass through the squaring (exponentiation) and modulus loop in the original GMP versions of SB. When we had vital systems of SB working, we went back and decided to redefine the work measurement. This is because the speed of the EM is not constant or linear with respect to the input size. The larger the number under test becomes, the longer a single EM takes. For GMP, the steps supposedly grow as O(n ln n) the input length of the numbers. However, we found that the FFT multiplication routines in GMP were dominated by many sub-routines which ran in O(n^2) time. Therefore, we added a correction factor and redefined EMs as cEMs. Specifically, the forumula to calculate cEMs for an entire test is:
cEMs = n^2 / 1 billion. (n^3/10E9 for current n values).
cEMs were great. They worked really well.
Now, fast forward half a year later. George Woltman appoaches the SB team. He offers his math routines from PRP which are highly superior to GMP's more general routines. We integrate PRPs routines but don't immediately change units. However, the unit should probably change for several reasons. For one, PRP techincally doesn't even do a modulus operation anymore... making it a little inappropriate for the unit itself to refer to modulus'. [For those interested, the modulus is done "for free" as a side-effect of the discrete weighted transforms used to square numbers.] Also, the routine is not O(n^2)... it's closer to O(n ln ln ln n). So to make things even more confusing, it turns out the PRP routines are not only faster, they also "slow down slower" as the size of their inputs increases. This means that cEMs artifically inflate slightly as test sizes increase.
Currently, Dave has isolated specific test points in the database which we are using to create a new unit the doesn't skew over time. Unless something changes, cEMs will eventually be replaced by Flops (Floating-Point Operations). Once an appropriate correction factor is decided on, Flops will replace cEMs. EMs made sense for a month. cEMs made sense for a couple more months. And now, Flops make sense going forward so we'll change as soon as possible... making this entire question on the FAQ only a depreciated curiosity. "
-Louie