It's common practice in video games to reduce the time necessary to do something by dividing the base by the bonus + 100% instead of multiplying the base by 100% - the bonus. This creates an asymptote or value which limits how low or high you can go.
Originally Posted by Orloth
My math seemed pretty simple to me:
modified cooldown = base cooldown / (100% + haste%)
also can be stated as:
modified cooldown = base cooldown * (100% / (100% + haste%)) - I missed some parentheses here, maybe that confused people
This means that getting 100% haste doubles how often you can use an ability, which is intuitive to me.
Getting 50% haste means you can use an ability 50% more often, but in actually you only reduce the cooldown by 33.3%. This is because period is an inverse of frequency. Using something 3/2 times as often means the period between uses is 2/3 that of normal. For example: Say Dark Soul has a 3 minute cooldown. You can use Dark Soul 2 times in 6 minutes. Now reduce Dark Soul's cooldown by 33.3%, so it's on a 2 minute cooldown (3 * 66.7%). You can use Dark Soul 3 times in 6 minutes now. 3 Dark Souls / 2 Dark Souls = 1.5, or a gain of 0.5 (50%) more Dark Souls.
As far as Imp Swarm cooldown goes, I've tested the values myself and it checks out to follow my above formula. Here's an easy way to check:
1. Look at your haste value on character sheet
2. (using a calculator) divide 2 (base cd of Imp Swarm) by 1 + your haste as a decimal (.18 for 18% haste)
3. Compare the value with the cooldown of your Imp Swarm, they should be the same
At low haste values, it's easy enough to confuse the two methods of computing cooldown because they give similar numbers.
Haste% Imp Swarm CD
0 2.0 min
10 ~1.81 min (NOT 1.8 but roughly the same)
25 1.6 min
50 ~1.333 min
100 1.0 min
100000 ~0.02 min
However, at higher haste values, it becomes clear as to why you should compute cooldown by dividing by 1 + haste, instead of multiplying by 1 - haste.