pub trait ForwardRule<V: Differentiable> {
// Required method
fn pushforward(
&self,
tangents: &[Option<&V::Tangent>],
) -> AdResult<V::Tangent>;
}Expand description
Forward-mode AD rule interface (frule).
Named after Julia’s ChainRules.jl convention: frule computes pushforward.
The type parameter V is the differentiable value type (e.g., Tensor<f64>).
§Examples
ⓘ
use chainrules_core::{ForwardRule, Differentiable, AdResult};
struct MyFrule;
impl<V: Differentiable> ForwardRule<V> for MyFrule {
fn pushforward(&self, tangents: &[Option<&V::Tangent>])
-> AdResult<V::Tangent> {
todo!()
}
}