Quote:
If 1/inv_sqrt(x) is faster, then only because the result has lower precision. That's probably no problem for Stereo Tool but wouldn't using low precision sqrt(x) achieve the same without any issues?
I did a quick websearch and yeah, inv_sqrt(x) usually uses half the precision. Note there should be a compiler option for low precision sqrt, too. That would have made all sqrts faster at once without replacing it.
By default sqrt needs to follow some IEEE standard which requires that all computed digits are correct. With the compiler option above this is no longer necessary.
The compiler option - as far as I have observed - does replace 1 / x by the faster function, and probably 1 / sqrt as well, but it doesn't automatically replace sqrt by 1/(1/sqrt)). Besize that, the heavy parts of the code are in most places hand-written intrinsics (very close to assembly), and the compiler definitely doesn't change those based on that option. I have just re-thought the precision thing though, and while in MOST (actually, all other) places I don't care about precision at all, the Dequantizer is actually an exception. I still don't care about precision, but I
do need the error offset to be smooth. Based on the documentation and graphs that I found it should be - but based on my own tests it's not. Information about how this 1/(1/sqrt) instruction is implemented is contradictory, many sources say that it's a lookup table, but that doesn't fit what I saw (jumps if the output value are sometimes bigger than the difference of the input values). It looks like they are actually really using something like the Quake-method. So I have just reverted the 1/(1/sqrt)) change for the Dequantizer.
Quote:
An other, old minor issue - I forgot to mention, probably nobody using this function: the "Fake Stereo" not active when "Audio quality" is more than 100%.
I don't think that anyone uses that anymore (well, obviously you do?). It must have been broken ever since we introduced > 100% Quality, which is years ago. I'll put it on the list for the next version, we're not going to change it for the upcoming release anymore.