isp:hsl-_rgb

This shows you the differences between two versions of the page.

Both sides previous revision Previous revision | |||

isp:hsl-_rgb [2019/05/29 11:43] Igor Yefmov [Preface] |
isp:hsl-_rgb [2019/05/31 03:52] (current) Igor Yefmov [Division-less division] |
||
---|---|---|---|

Line 20: | Line 20: | ||

\[\frac{1}{x} = \frac{1*N}{x*N}\] | \[\frac{1}{x} = \frac{1*N}{x*N}\] | ||

and choosing \(N\) such that \(x*N\) is a whole power of \(2\) we have an optimization where a division is replaced by a pair of a multiplication followed by a (super cheap!) bit-shift operation by \(Z\) bits: | and choosing \(N\) such that \(x*N\) is a whole power of \(2\) we have an optimization where a division is replaced by a pair of a multiplication followed by a (super cheap!) bit-shift operation by \(Z\) bits: | ||

- | \[\frac{C}{x} = C*\frac{1}{x} = C*\frac{1*N}{x*N} = C*\frac{N}{2^Z} = [(C*N)>>Z]\] | + | \[\frac{C}{x} = C*\frac{1}{x} = C*\frac{1*N}{x*N} = C*\frac{N}{2^Z} = [(C*N) \gg Z]\] |

The value \(Z\) depends on the needed precision and, of course, the higher the \(Z\) the less precision loss there will be in the end. | The value \(Z\) depends on the needed precision and, of course, the higher the \(Z\) the less precision loss there will be in the end. | ||

/home/adminsub2r/public_html/dokuwiki/data/pages/isp/hsl-_rgb.txt · Last modified: 2019/05/31 03:52 by Igor Yefmov