summaryrefslogtreecommitdiff
path: root/site/content/gsoc/differentiating_code.typ
diff options
context:
space:
mode:
Diffstat (limited to 'site/content/gsoc/differentiating_code.typ')
-rw-r--r--site/content/gsoc/differentiating_code.typ4
1 files changed, 2 insertions, 2 deletions
diff --git a/site/content/gsoc/differentiating_code.typ b/site/content/gsoc/differentiating_code.typ
index 8d7aa03..d68efb7 100644
--- a/site/content/gsoc/differentiating_code.typ
+++ b/site/content/gsoc/differentiating_code.typ
@@ -30,7 +30,7 @@ $
Y &= k integral overline(E)(lambda) overline(y)(lambda) dif lambda \
Z &= k integral overline(E)(lambda) overline(z)(lambda) dif lambda
$
-where $overline(x)$, $overline(y)$ and $overline(z)$ are the cmfs (color matching functions), quantizing human color vision. They are closely related to (but not the same as) spectral sensivities of the three different kinds of cone cells in a human eye. In particular $overline(y)$ is the luminosity function used in photometry, describing how bright light of different wavelengths appears. The normalization constant $k$,
+where $overline(x)$, $overline(y)$ and $overline(z)$ are the cmfs (color matching functions), quantifying human color vision. They are closely related to (but not the same as) spectral sensitivities of the three different kinds of cone cells in a human eye. In particular $overline(y)$ is the luminosity function used in photometry, describing how bright light of different wavelengths appears. The normalization constant $k$,
$
k = (integral I(lambda) y(lambda) dif lambda)^(-1)
$
@@ -74,7 +74,7 @@ $
$
The derivatives of $R$ have already been computed in the previous step. Doing this step by step will eventually lead to $(dif (Delta E)) / (dif L^*)$, $(dif (Delta E)) / (dif a^*)$ and $(dif (Delta E)) / (dif b^*)$ and ultimately the gradient of $Delta E$. Take a look at the #link("https://github.com/enneract/colour/blob/b8c113efb7b819fce81213e6f6fa41db90b0b61c/colour/recovery/jakob2019.py#L198-L252")[full code] to see all the formulas.
-= Automatic differentation
+= Automatic differentiation
There is a clever trick to "automagically" compute derivatives, without having to go step-by-step, differentiating every operation and writing code manually like I did. #link("https://en.wikipedia.org/wiki/Dual_number")[Dual numbers] have the interesting property that, when used correctly, their dual parts are the derivatives of their real parts. They're defined very similarly to complex numbers, but instead of $z = a + b i$, $i^2 = -1$, one has $z = a + b epsilon$, $epsilon^2 = 0$. (Even more interestingly, this can be extended to higher derivatives as well!). See #link("https://en.wikipedia.org/wiki/Automatic_differentiation")[automatic differentiation] on Wikipedia.