Trait ForwardRule
pub trait ForwardRule<V>where
V: Differentiable,{
// Required method
fn pushforward(
&self,
tangents: &[Option<&<V as Differentiable>::Tangent>],
) -> Result<<V as Differentiable>::Tangent, AutodiffError>;
}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!()
}
}Required Methods§
fn pushforward(
&self,
tangents: &[Option<&<V as Differentiable>::Tangent>],
) -> Result<<V as Differentiable>::Tangent, AutodiffError>
fn pushforward( &self, tangents: &[Option<&<V as Differentiable>::Tangent>], ) -> Result<<V as Differentiable>::Tangent, AutodiffError>
Computes output tangent from input tangents (pushforward).