Help needed with retroactive differentiability

This could result in the following tables.

In module B:

differentiability_witness @A.foo {
  jvp: @B.foo_jvp
  vjp: @B.foo_vjp
}

In module C:

differentiability_witness @A.foo {
  jvp: @C.foo_jvp
  vjp: @C.foo_vjp
}

And in the differentiation transform we can always look up differentiability_witness tables in the current module, then in imported modules if it doesn't exist. This also makes us able to get rid of the [differentiable jvp @... vjp @...] attribute on SIL function declarations because it's not as powerful as lookup tables.

1 Like