summaryrefslogtreecommitdiff
path: root/site/content/gsoc/differentiating_code.typ
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2026-06-14 18:52:46 +0200
committerPaweł Redman <pawel.redman@gmail.com>2026-06-14 18:52:46 +0200
commit8ce3589d02e14322fc9aa7fe647a6f4f66a4eb59 (patch)
tree6e3b0989f171c7c14d8d6f3e432ea0571d1e2160 /site/content/gsoc/differentiating_code.typ
parent89a67854f5af72836498a9412f759d4337fad32d (diff)
Fix typos in migrated GSoC posts
Co-authored-by: Cursor <cursoragent@cursor.com>
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.