pub trait LinearizedOp<V: Differentiable + Send + Sync + 'static>:
Send
+ Sync
+ 'static {
// Required methods
fn jvp(
&self,
input_tangents: &[Option<V::Tangent>],
) -> AdResult<Vec<Option<V::Tangent>>>;
fn vjp(
&self,
output_cotangents: &[Option<V::Tangent>],
input_grad_mask: &[bool],
) -> AdResult<Vec<Option<V::Tangent>>>;
}