projects
/
libreriscv.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9b6f2fb
)
add notes on pow's use in 3D graphics
author
Jacob Lifshay
<programmerjake@gmail.com>
Tue, 11 Apr 2023 06:07:08 +0000
(23:07 -0700)
committer
Jacob Lifshay
<programmerjake@gmail.com>
Tue, 11 Apr 2023 06:07:08 +0000
(23:07 -0700)
openpower/transcendentals.mdwn
patch
|
blob
|
history
diff --git
a/openpower/transcendentals.mdwn
b/openpower/transcendentals.mdwn
index 86edb7f306bd6f43688180bcc42c93164a8b6be6..9e6b86118b1f2687e3a14d18851165041faa155b 100644
(file)
--- a/
openpower/transcendentals.mdwn
+++ b/
openpower/transcendentals.mdwn
@@
-436,6
+436,11
@@
CBRT, POW, POWN, POWR, ROOTN
These are simply much more complex to implement in hardware, and typically
will only be put into HPC applications.
These are simply much more complex to implement in hardware, and typically
will only be put into HPC applications.
+Note that `pow` is commonly used in Blinn-Phong shading (the shading model used
+by OpenGL 1.0 and commonly used by shader authors that need basic 3D graphics
+with specular highlights), however it can be sufficiently emulated using
+`pow(b, n) = exp2(n*log2(b))`.
+
* **Zfrsqrt**: Reciprocal square-root.
## Trigonometric subsets
* **Zfrsqrt**: Reciprocal square-root.
## Trigonometric subsets
@@
-529,6
+534,10
@@
high-performance or correctly-rounding):
ASINH( x ) = ln( x + SQRT(x**2+1))
ASINH( x ) = ln( x + SQRT(x**2+1))
+`pow` sufficient for 3D Graphics:
+
+ pow(b, x) = exp2(x * log2(b))
+
# Evaluation and commentary
Moved to [[discussion]]
# Evaluation and commentary
Moved to [[discussion]]