ForwardRule

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>

Computes output tangent from input tangents (pushforward).

Implementors§