On 26.09.2012 12:17, Nozomi Kodama wrote:
- ta =0.28209479f * a[0]+ 0.14567312f * a[8]+ 0.12615663f * a[6];
- tb =0.28209479f * b[0]+ 0.14567312f * b[8]+ 0.12615663f * b[6];
- out[13] += ta * b[13] + tb * a[13];
- t = a[13] * b[13];
- out[0] +=0.28209479f *t;
Please use spaces with care. The preferred way is "x = 123 * a[0] + 456 * b[234]; Mostly one space is enough, only use two or more if you like to indent something, that's mostly not the case when calculating a value. Even then, please be consistent across your patch.
- D3DXSHMultiply4(c, a, b);
What happens if you use something like D3DXSHMultiply4(c, c, c). Is that allowed?
Also is there a reason why it uses slightly different values than e.g. D3DXSHMultiply3? Why don't we use defines? A problem might be to find good names... Maybe the Multiply functions could share the same base? To me it looks like they do share a lot of calculations, And if the order doesn't matter (see comment above) then it may be possible to rearrange the calculation.
ta = 0.28209479f * a[0] - 0.12615663f * a[6] - 0.21850969f * a[8]; vs ta = 0.28209479f * a[0] - 0.12615662f * a[6] - 0.21850968f * a[8];
Cheers Rico