Browse Source

Change formulation of diff

David Peter 1 year ago
parent
commit
b06d06d5d3
1 changed files with 3 additions and 1 deletions
  1. 3 1
      examples/numerical_diff.nbt

+ 3 - 1
examples/numerical_diff.nbt

@@ -1,7 +1,9 @@
 let eps = 1e-10
 
+fn _delta<X: Dim>(x: X) -> X = 1e-10 × unit_of(x)
+
 fn diff<X: Dim, Y: Dim>(f: Fn[(X) -> Y], x: X) -> Y / X =
-  (f(x + eps · unit_of(x)) - f(x)) / (eps · unit_of(x))
+  (f(x + _delta(x)) - f(x)) / _delta(x)
 
 assert_eq(diff(log, 2.0), 0.5, 1e-5)
 assert_eq(diff(sin, 0.0), 1.0, 1e-5)