 |
| Welcome to Elitist Jerks |
We're testing some new features on the site regarding OpenID registration and coordination with gamerDNA. If you experience any issues with registering an account, please take the time to fill out a report a send it to this e-mail address. We would appreciate any assistance you could provide in making sure everything is functioning as intended. Thanks!
If this is your first visit, please be sure to check out the FAQ and the forum rules. Users must register to post and new registrations are subject to a one day "mute" period to get acquainted with the community.
|
01/04/08, 3:01 AM
|
#1
|
|
Don Flamenco
|
[Math] Stat Equivalence and Taylor Series
Theorycrafters spend no small amount of effort on the computation of how much of one stat is equivalent to some specific amount of another, at least in terms of some objective function. However, most of the approaches used are brute-force numeric methods; though most are sound, they are nevertheless approximations. This post will merely demonstrate why these approximations work for small stat changes, in addition to more exact symbolic solutions (that, granted, are also more difficult to work with).
Let us, then, consider some objective function  as a function of all stats and effects  . Note that while  is a scalar function,  is a vector. In one sense, calling  a vector is doing so a bit loosely, but let's go with it.
Now, the idea of computing stat equivalence is based on some original starting point, which we can call  . We can then call the changes from that point (in terms of stats, procs, etc.)  .
What's relevant for the purposes of a stat comparison is a function...
Where  .
A Taylor series expansion would be helpful here: indeed, we can see that everything after the zeroth-order term in a Taylor expansion would neatly yield the value of the function  .
However, this is, quite obviously, a multivariable Taylor series. As such it can be written in multi-index notation...
Where the notation is consistent with Wikipedia's page on multi-index notation.
I personally prefer something based more on the concept of tensors:
Where }(\vec{u})) denotes the nth derivative (as a gradient, hessian, and subsequently higher rank tensors), and  and ) stands for the Hadamard product of tensors, which is, in some ways, a generalization of dot product in terms of multiplying corresponding entries of two tensors together.
It should be noted that there are very few functions (that I can think of, anyway) that would have derivatives higher than second-order for any single stat, and for the most part, anything beyond the first-order could be ignored--in essence, this is the foundation for most approximations we see: linear approximations of the function  .
An Example: Damage and Crit for Casters
At any rate, this is all a bit esoteric, so perhaps it's good to see an example in practice:
Consider an expected damage/cast function  = hq(m+rd)(1+bc)) . In considering a simple example, most of the variables are irrelevant; we'll only look at a two-variable case, where  (which represent a change in +damage and crit chance, respectively).
In this case, all we need to calculate  is...
Since only two variables are changing, we can imagine that this is just a function of two-variables. This is just a cosmetic shortcut: in truth, all we're doing is ignoring irrelevant parts of the gradient (and hessian, and so on) that have to do with variables that aren't changing--that is, with elements that, when put through the Hadamard product, are just going to be multiplied with elements that are zero and won't contribute to the sum.
Thus...
Which yields...
Which is exactly what an algebraic expansion would tell you. The benefit, of course, is that this method can be used when algebra would fail.
Application to Stat Equivalence
In terms of stat equivalence, the power of this symbolic method can lead to vast generalizations.
Using the function above, it's pretty easy to show that...
Using these expressions, we can set the two equal and thus see how much  +damage is equivalent to a given amount of crit chance,  or vice versa.
That is, setting the two expressions equal...
Which can be converted to raw stats just by considering the rating conversion from crit chance to rating. And the expression can be solved in reverse to find how much crit chance is needed to be equivalent to a given amount of +damage.
These are, however, among the simpliest possible expressions imaginable. Once more than one spell in rotation is considered, they grow much more complicated. It is for this reason that the symbolic generalizations are terribly limited.
|
|
|
|
|
|
01/04/08, 7:02 AM
|
#2
|
|
Jack Vettriano > You
Dextor
Tauren Druid
<Elitist Jerks>
No WoW Account
|
I can still kick your ass.
|
|
|
|
|
|
01/04/08, 7:26 AM
|
#3
|
|
Glass Joe
Human Warlock
Grim Batol (EU)
|
You got me on the first equation... not good at maths :O
|
|
|
|
|
|
01/04/08, 8:11 AM
|
#4
|
|
Piston Honda
Gnome Warlock
Cho'gall (EU)
|
Originally Posted by Muphrid
These are, however, among the simpliest possible expressions imaginable. Once more than one spell in rotation is considered, they grow much more complicated. It is for this reason that the symbolic generalizations are terribly limited.
|
I think you've said it all ! ;-)
You just can't transform everything to a simple F function. For exemple the warlock dps calculation leads to a differential equation (you need X mana/s to cast your spells -> Y lifetaps to cover it -> you spend some time lifetaping -> you need X2 mana/s -> ...).
But essentially, why bother with complicated (leading to unsolvable ?) equations, when you just can calculate ) and ) and thus find ) ?
|
|
|
|
|
|
01/04/08, 9:36 AM
|
#5
|
|
King Hippo
Merple
Undead Priest
No WoW Account
|
I don't even know how to use the math systems here at EJ, but I'm wondering if I was the only person whose first response to this post was to post something along the lines of ) ...
I wish I understood the math behind half of the things that go on in this game or at least _what_ math is behind it, but I can’t even fathom it.
Damn you, arts background.
|
-In our country, any CBC reporter can dream of becoming head of state.
|
|
|
|
01/04/08, 11:42 AM
|
#6
|
|
Piston Honda
|
I dare you to post this on the official forums.
|
|
|
|
|
|
01/04/08, 11:57 AM
|
#7
|
|
Piston Honda
|
Was I the only person who quickly scrolled to the bottom of his post when I saw he was using a function F and a vector u to make sure I didn't waste 5 minutes reading that his equation would wind up being some math nerd joke?? I was just waiting to see variables C or K.
Oh i'll never forgive my algebra teacher for that wonderful "= R D R R "
|
|
|
|
|
|
01/04/08, 12:19 PM
|
#8
|
|
Von Kaiser
Blood Elf Paladin
Sargeras
|
eh, F and u are pretty common. F is the general function notation and u can be the x component of a vector or more commonly a vector itself defined by the i, j and k directions. But no, I did the same thing ><'.
|
|
|
|
|
|
01/04/08, 12:28 PM
|
#9
|
|
Don Flamenco
|
Originally Posted by Uglesh
Oh i'll never forgive my algebra teacher for that wonderful "= R D R R "
|
I guess my algebra teacher never explained that one to us... Care to enlighten the ignorant? 
|
|
|
|
|
|
01/04/08, 12:33 PM
|
#10
|
|
Don Flamenco
|
Originally Posted by Ozzmar
I guess my algebra teacher never explained that one to us... Care to enlighten the ignorant? 
|
I think it's meant to be read "Hardy Har Har".
|
|
|
|
|
|
01/04/08, 1:14 PM
|
#11
|
|
Von Kaiser
|
If you would be so kind as to post a key for your "simple" equation that would be nice.
|
|
|
|
|
|
01/04/08, 1:32 PM
|
#12
|
|
Don Flamenco
|
Originally Posted by Bolche
I think you've said it all ! ;-)
You just can't transform everything to a simple F function. For exemple the warlock dps calculation leads to a differential equation (you need X mana/s to cast your spells -> Y lifetaps to cover it -> you spend some time lifetaping -> you need X2 mana/s -> ...).
|
It's interesting you say that; what the series shows is that you don't need to know the original function to calculate the change in DPS. You only need the first and subsequent derivatives.
But essentially, why bother with complicated (leading to unsolvable ?) equations, when you just can calculate and and thus find ?
|
It's really just more of a reminder that most ways of computing stat equivalence rely on some approximation of what is ultimately this Taylor series. A simple way to calculate the value of a stat compared to another might be to consider how much dps 1 of each stat gives and just use a linear approximation to project how much dps an arbitrary amount of those stats would yield. Indeed, many stats are linear, and thus this is exact. Some stats, however, are not linear--resilience and agility, for example. Any combination of linear stats is not linear but second-order. Granted, in both cases, the second-order terms are typically negligible for small stat changes, but it does help to remember than in such cases, it is an approximation, and it does get progressively worse as larger stat changes are considered.
But, even a simple spreadsheet can outperform such an analysis for all practical purposes. Beyond being a theoretical curiosity, though, the Taylor expansion--and the utter intractability of even most simple functions when expanded--tells me one thing: that Blizzard haven't a clue what they're doing. It's their job to balance classes not just now but at a wide range of gear levels. I didn't even get into optimization over a given boundary curve (which would be the item point allocation function), but it's clear it would be nigh on impossible to do.
Originally Posted by Tinweasele
If you would be so kind as to post a key for your "simple" equation that would be nice.
|
How do you mean?
|
|
|
|
|
|
01/04/08, 3:33 PM
|
#13
|
|
Bald Bull
|
I think he means identifying the variables  and  in your equation. Looks to me like hit, haste, base damage, coefficient, damage from gear, crit damage bonus, and crit chance respectively.
Question: Why you are using a fully multivariable Taylor product instead of just taking partial derivatives with respect to various variables? It seems to me that the reason you would use the more complex operation, the interaction between various partials, is immediately being ignored when you ignore the complicated parts of the formula. In fact, taking the partials of  = hq(m+rd)(1+bc)) with respect to  and  and setting up a ratio gives the exact same result, }{(\frac{1}{b}+c)}) , in this case. Under what circumstances would this not be the case?
Also regarding your initial hypotheses: proc-based uptimes (like flurry and improved shadowbolt) tend to have n-order polynomial sections, where n is the number of charges on the proc, 3 and 4 in those cases, so there are cases with very important higher-order derivatives. I'm trying to come up with exponential or logarithmic functions and can't, but I wouldn't be surprised to see exponential decay towards a cutoff.
EDIT: Apparently on forums $ does not automagically create LaTeX formatting -_-.
Last edited by PSGarak : 01/04/08 at 3:38 PM.
|
|
|
|
|
01/04/08, 4:31 PM
|
#14
|
|
Don Flamenco
|
Originally Posted by PSGarak
I think he means identifying the variables  and  in your equation. Looks to me like hit, haste, base damage, coefficient, damage from gear, crit damage bonus, and crit chance respectively.
|
Yeah, only difference being q represents flat damage multipliers instead of haste--this being a damage per cast (and not a DPS) function.
Question: Why you are using a fully multivariable Taylor product instead of just taking partial derivatives with respect to various variables? It seems to me that the reason you would use the more complex operation, the interaction between various partials, is immediately being ignored when you ignore the complicated parts of the formula. In fact, taking the partials of with respect to and and setting up a ratio gives the exact same result, , in this case. Under what circumstances would this not be the case?
|
I'm not sure I understand what you mean.
The ratio is just  or its inverse.
How is "just taking partial derivatives" different from the Taylor series as a whole?
Also regarding your initial hypotheses: proc-based uptimes (like flurry and improved shadowbolt) tend to have n-order polynomial sections, where n is the number of charges on the proc, 3 and 4 in those cases, so there are cases with very important higher-order derivatives. I'm trying to come up with exponential or logarithmic functions and can't, but I wouldn't be surprised to see exponential decay towards a cutoff.
EDIT: Apparently on forums $ does not automagically create LaTeX formatting -_-.
|
I would be highly, highly surprised if Blizzard had anything remotely resembling exponential growth or decay in any of their mechanics. They don't seem to be that smart.
I think ultimately any theoretical model of such effects will be too woefully simplistic. You need an average rate of consumption to compare against the rate of reapplication.
|
|
|
|
|
|
01/04/08, 5:09 PM
|
#15
|
|
Piston Honda
Night Elf Warrior
Arathor
|
Originally Posted by SeanDamnit
I dare you to post this on the official forums.
|
You really should. You should also provide a link. The entertainment value would be priceless.
|
|
|
|
|
|
01/04/08, 5:15 PM
|
#16
|
|
Don Flamenco
|
The loss of LaTeX would just take all the wind out of it, though.
|
|
|
|
|
|
01/04/08, 5:29 PM
|
#17
|
|
Glass Joe
|
When doing this type of analysis you should mention that higher order derivatives can be ignored if they are much smaller than lower order derivatives (e.g. a factor of ten). If this is not true then your Taylor's analysis is woefully wrong.
|
|
|
|
|
|
01/04/08, 5:53 PM
|
#18
|
|
Don Flamenco
|
Originally Posted by BaelehShmot
When doing this type of analysis you should mention that higher order derivatives can be ignored if they are much smaller than lower order derivatives (e.g. a factor of ten). If this is not true then your Taylor's analysis is woefully wrong.
|
I did note that usually the higher-order derivatives are negligible. I wasn't aware that a factor of 10 would be a good rule of thumb, though, thanks.
|
|
|
|
|
|
01/04/08, 7:33 PM
|
#19
|
|
Bald Bull
|
Originally Posted by Muphrid
The ratio is just  or its inverse.
How is "just taking partial derivatives" different from the Taylor series as a whole?
|
That's what I was asking you. Your explanation has a lot to do with, e.g., matrices of operators which seems like a lot of extra work to go through if the result is just as simple as taking the first partials with respect to damage and crit. Partial derivates are incredibly easy to perform and understand; multivariable taylor series seems like a lot of extra theoretical and computational work. Multivariable calculus isn't my specialty so I'm wondering if there is any (or any important) information that is being lost, either in general or in this specific example, by avoiding that whole discussion on Taylor series and simply saying "now we use calculus to see how your damage changes with crit." And, if there is extra information there, does it really matter? Since all we're looking at is how your damage is affected by extra stat points, which on the surface would seem to be the first partials, without anything to do with Taylor series in general.
Originally Posted by Muphrid
I would be highly, highly surprised if Blizzard had anything remotely resembling exponential growth or decay in any of their mechanics. They don't seem to be that smart.
|
Well not on purpose, I mean by accident. [Darkmoon Card: Wrath], for example, is written using entirely additive properties but it's affect on crit is a geometric series and its affect on, for example, ISB uptime could very well end up being exponential decay if there isn't a stack limit. As another example, crit on a warrior gives flurry, both of which give rage allowing more specials which have further chance to crit. I don't know if that's a high-order polynomial or an exponential function, but the point is that without intending to their simplistically-designed primary effects can have more complex behavoirs.
On the other hand some of them also have simpler solutions. For example, re: aff warlock nuke measure mentioned above, is not a differential function, it's a recurence relation with a pretty simple closed-form solution. It does happen to be a fraction of various intermediate variables so it might be a bitch to derivate but the stated form isn't as hard.
(Without having tried) I actually don't think that modelling most classes is honestly that hard, except for hidden cooldowns (boooo enh shamans). For example a fire mage 8-1 cycle is just a weighted average of two of your equations above with different numbers, which will probably result in just another equation of the same form with different numbers. The harder ones are piecewise functions, like what a warrior does with more rage as they start butting up against cooldowns. And if all you need are first partials the derivatives are cake.
I was honestly expecting a lot more symbolic computation when I first came to these boards and I was really dissapointed when I found a bunch of brute-force spreadsheets and no calculus =P. Apparently I'm lonelier than I originally anticipated in seeing scaling information easier with raw equations than numerical tables.
|
|
|
|
|
01/04/08, 7:49 PM
|
#20
|
|
Mr. Sandman
Night Elf Rogue
Proudmoore
|
Originally Posted by PSGarak
That's what I was asking you. Your explanation has a lot to do with, e.g., matrices of operators which seems like a lot of extra work to go through if the result is just as simple as taking the first partials with respect to damage and crit. Partial derivates are incredibly easy to perform and understand; multivariable taylor series seems like a lot of extra theoretical and computational work. Multivariable calculus isn't my specialty so I'm wondering if there is any (or any important) information that is being lost, either in general or in this specific example, by avoiding that whole discussion on Taylor series and simply saying "now we use calculus to see how your damage changes with crit." And, if there is extra information there, does it really matter? Since all we're looking at is how your damage is affected by extra stat points, which on the surface would seem to be the first partials, without anything to do with Taylor series in general.
|
Honestly, that was my first thought when reading this thread as well. I mean, it all looks very impressive and is an admirable display of rigor; but I don't see it really allows us to do anything that we weren't already doing. I suppose it does tell us how to get more accurate models by adding higher derivatives, but most of these functions are either trivial and adequately described by the first order approximation, or so insanely messy that taking a 2nd derivative is impractical and not necessarily particularly more accurate anyway.
I'm not trying to be critical, but I guess I'm failing to see the advantage of looking at it in this way.
|
|
|
|
|
|
01/04/08, 8:00 PM
|
#21
|
|
Don Flamenco
|
Originally Posted by PSGarak
That's what I was asking you. Your explanation has a lot to do with, e.g., matrices of operators which seems like a lot of extra work to go through if the result is just as simple as taking the first partials with respect to damage and crit. Partial derivates are incredibly easy to perform and understand; multivariable taylor series seems like a lot of extra theoretical and computational work. Multivariable calculus isn't my specialty so I'm wondering if there is any (or any important) information that is being lost, either in general or in this specific example, by avoiding that whole discussion on Taylor series and simply saying "now we use calculus to see how your damage changes with crit." And, if there is extra information there, does it really matter? Since all we're looking at is how your damage is affected by extra stat points, which on the surface would seem to be the first partials, without anything to do with Taylor series in general.
|
For individual stats, in this particular example, all the non-mixed second partials are zero, so no, there is no lost information in this particular example. In other words, the Taylor series simply terminates after the first-order term.
For any combination of stats, however, and for certain stats (again, agility, resilience, and shadow damage with Imp. Shadow Bolt dependence on crit), the second (and perhaps subsequent) partials are non-zero.
Really, a Taylor series is only comprised of a few parts: the relevant partial derivative, the 1/n! factor that is derived from combinatorics, and some mixture of the elements of ∆u.
In the past, I've used many ways to try to calculate ∆E for given values of ∆u. Simple algebra works great, even with the complications involved when you correct the model for resilience. Integrating the gradient over path works well enough (a play on the fundamental theorem of calculus). Using a Taylor series also works. These are all equivalent methods of calculating the 100% correct symbolic answer.
However, what using a Taylor series does is give you a very quick linear approximation: you just chop off all terms higher than second-order.
|
Well not on purpose, I mean by accident. [Darkmoon Card: Wrath], for example, is written using entirely additive properties but it's affect on crit is a geometric series and its affect on, for example, ISB uptime could very well end up being exponential decay if there isn't a stack limit. As another example, crit on a warrior gives flurry, both of which give rage allowing more specials which have further chance to crit. I don't know if that's a high-order polynomial or an exponential function, but the point is that without intending to their simplistically-designed primary effects can have more complex behavoirs.
|
I wouldn't say the Wrath card's effects are geometric: it operates on a simple principle of adding crit chance.
What really saddens me is that the type of functions we're dealing with--whether they're exponential, polynomial, or otherwise--is never immediately obvious. It never is with Blizzard.
On the other hand some of them also have simpler solutions. For example, re: aff warlock nuke measure mentioned above, is not a differential function, it's a recurence relation with a pretty simple closed-form solution. It does happen to be a fraction of various intermediate variables so it might be a bitch to derivate but the stated form isn't as hard.
(Without having tried) I actually don't think that modelling most classes is honestly that hard, except for hidden cooldowns (boooo enh shamans). For example a fire mage 8-1 cycle is just a weighted average of two of your equations above with different numbers, which will probably result in just another equation of the same form with different numbers. The harder ones are piecewise functions, like what a warrior does with more rage as they start butting up against cooldowns. And if all you need are first partials the derivatives are cake.
|
For the most part, I don't think there is a whole lot of difficulty deriving close-form expressions for modeling purposes once given conclusive data and knowledge of how the mechanics work. The problem is that we don't know how all mechanics work and some of the testing required to determine how they work is quite, well, ridiculous.
One thing I would mention, however, is combustion. Trying to model the average benefit of combustion has eluded me, mostly because of the interaction with the cap. At present, most mage theorycrafters I know use a model derived from a simulation.
|
I was honestly expecting a lot more symbolic computation when I first came to these boards and I was really dissapointed when I found a bunch of brute-force spreadsheets and no calculus =P. Apparently I'm lonelier than I originally anticipated in seeing scaling information easier with raw equations than numerical tables.
|
No kidding. I only learned yesterday that the board supported LaTeX; it was that that allowed me to make this post (which I had planned for some time, just for a loss as to where best to put it).
|
|
|
|
|
|
01/04/08, 8:24 PM
|
#22
|
|
Bald Bull
Blood Elf Paladin
Darksorrow (EU)
|
The fact is, in practice, for a realistic increase of 1 stat (from say, 1 item upgrade or some well-fed buff), has an extremely small effect on the value of other stats that you can just ignore it.
For example if you go to lieuler's spreadsheet, look at the extra dps increase from 10 spell dmg, then the extra dps increase from 10 crit rating, then the dps increase from both 10 dmg and 10 crit rating, you'll see a negligible difference between adding the "benefit from 10 dmg" with the "benefit from 10 crit rating" to what you actually get on the spreadsheet by adding both. That's again, becuase a small change of stats simply doesn't have any even nearly-meaningful effects on the value of stats. You need quite a big change of stats for the value of stats to actually change, in which case you just go to the spreadsheet again and enter your new stats. In reality those kinds of changes happen once in a long time considering the rate at which you get raiding upgrades.
|
|
|
|
|
|
01/04/08, 8:46 PM
|
#23
|
|
Nerodin's Elitist
|
Originally Posted by Muphrid
For the most part, I don't think there is a whole lot of difficulty deriving close-form expressions for modeling purposes once given conclusive data and knowledge of how the mechanics work.
|
So you haven't looked at enhancement shaman mechanics, I can tell. Each time someone has talked about making closed form expressions for class dps, and how easy it would be, they have been stumped on Enhance shaman mechanics. Tornhoof has a pretty good version at this point, I think. But we have no way to test to see how accurate it is. Blizzard should give us target dummies that act like raid level bosses, imo.
|
The problem is that we don't know how all mechanics work and some of the testing required to determine how they work is quite, well, ridiculous.
|
Absolutely true.
Or, we know how the mechanics work, and they're dumb. Expertise, for instance.
Let's say I know the partial derivative of Dd/De (damage with respect to expertise). For enhance shaman, by the way, this is an incredibly hard derivative to find, but pretend it were easy. Since blizzard has made expertise only useful when a multiple of 4 expertise rating is achieved, you now have to express Dd/De as a function of your currently level of expertise.
If I have to choose between using an item with 11 expertise rating and 0 attack power, or one with 28 attack power and 0 expertise rating, I can't do so without knowing my current expertise rating. For these purposes, assume that without this stair step insanity that Blizzard uses, 3AP = 1 Expertise rating, which is about right for Enhance Shaman).
If I currently have 0 expertise rating, then the first item would only give me 8 expertise rating worth (since any expertise rating that doesn't get me to a multiple of 4 is wasted). So, my choices are:
8 e.rating x 3gear-goodness/e.rating = 24 gear goodness
compared to
26 AP x 1 gear-goodness/ap = 26 gear goodness.
Aha! I should pick the second item, as it's a clear winner.
But wait, if I already have 5 expertise rating... well now 5 + 11 = 16, which is evenly divisible by four, so all 11 points of expertise rating on the item are providing benefit. The equations change!
11 e.rating x 3gear-goodness/e.rating = 33 gear goodness
compared to
28 AP x 1 gear-goodness/ap = 28 gear goodness.
Aha! I should pick the first item, as it's a clear winner.
/facepalm
Why Blizzard would do this is a mystery.
|
Originally Posted by Sporks
Of all the creepy things in this thread, this is the creepiest.
|
----------------------------------------------------
"Moogle has mentioned this in passing a few times but never elaborated on it. Perhaps we can entice him to respond." - Malan
|
|
|
|
01/04/08, 8:53 PM
|
#24
|
|
HP/MP restored, but you're still hungry
|
Originally Posted by Muphrid
For individual stats, in this particular example, all the non-mixed second partials are zero, so no, there is no lost information in this particular example. In other words, the Taylor series simply terminates after the first-order term.
For any combination of stats, however, and for certain stats (again, agility, resilience, and shadow damage with Imp. Shadow Bolt dependence on crit), the second (and perhaps subsequent) partials are non-zero.
|
Yeah, Mage isn't the greatest example here, since essentially everything is linear. On the other hand, it's actually simple enough to model, and since this is just about mathematical fun anyway, I guess that makes it the best candidate to mess around with.
Int has a slight quadratic term for deep Arcane, I guess.
If the main goal is to get people to properly think more in terms of marginal DPS per stat, maybe a nice post just explaining things at the linear level would be nice.
Also, you might be interested in this:
http://elitistjerks.com/f31/t14250-m...ell_selection/
|
Carrot Cake Soup is like the taste of watching girls make out.
|
|
|
|
01/04/08, 10:06 PM
|
#25
|
|
Bald Bull
|
Aha, I see what you're doing. You're using the first Taylor term (the first partials) as an approximation of the change with respect to an arbitrary change in statistics across all of  . It's the Taylor series itself that loses information compared to other methods of multivariable differentiation. I for some reason thought the Taylor series was exact and the first partials were an approximation of it.
Combustion and darkmoon wrath are almost the same effect. The part that's a geometric series is the average crit chance it gives, because the benefit it gives affects the chance of it getting consumed. Combustion is more convoluted because it's three crits rather than one, making it a maddening mess of inclusion-exclusion terms.
Disquette: how much of shaman calculational bullcrap comes down to the windfury cooldown? That seems like about the only thing that would hard, except that the amount of hard that it is overshadows about anything else I've seen in the game and it's fundamental to just about every part of their DPS (eg UR uptime).
Also, re: two-cycle theorem, I realized (after learning the relevent mathematics) that the theorem is only valid if you allow fractional cycles (eg 20 and 2/3 8xfireball 1xscorch cycles). If you're looking for whole cycles it's an integer program instead of a linear program, so the optimal point may be nowhere near any vertex (much less the linearly optimal one). Nuts to that. It also becomes  -complete to compute.
|
|
|
|
|
|